chore: Update discovery artifacts (#1291)

* chore: update docs/dyn/index.md
* chore(abusiveexperiencereport): update the api
* chore(acceleratedmobilepageurl): update the api
* chore(accessapproval): update the api
* chore(accesscontextmanager): update the api
* chore(adexchangebuyer2): update the api
* chore(adexperiencereport): update the api
* chore(admob): update the api
* chore(analytics): update the api
* chore(analyticsreporting): update the api
* chore(androiddeviceprovisioning): update the api
* chore(androidenterprise): update the api
* chore(androidpublisher): update the api
* chore(apigateway): update the api
* chore(artifactregistry): update the api
* chore(bigqueryconnection): update the api
* chore(bigquerydatatransfer): update the api
* chore(billingbudgets): update the api
* chore(binaryauthorization): update the api
* chore(blogger): update the api
* chore(books): update the api
* chore(calendar): update the api
* chore(chat): update the api
* chore(chromeuxreport): update the api
* chore(civicinfo): update the api
* chore(classroom): update the api
* chore(cloudbilling): update the api
* chore(cloudbuild): update the api
* chore(clouddebugger): update the api
* chore(clouderrorreporting): update the api
* chore(cloudfunctions): update the api
* chore(cloudidentity): update the api
* chore(cloudiot): update the api
* chore(cloudkms): update the api
* chore(cloudprofiler): update the api
* chore(cloudresourcemanager): update the api
* chore(cloudscheduler): update the api
* chore(cloudshell): update the api
* chore(cloudtasks): update the api
* chore(cloudtrace): update the api
* chore(composer): update the api
* chore(containeranalysis): update the api
* chore(content): update the api
* chore(customsearch): update the api
* chore(datacatalog): update the api
* chore(datafusion): update the api
* chore(datamigration): update the api
* chore(datastore): update the api
* chore(deploymentmanager): update the api
* chore(digitalassetlinks): update the api
* chore(displayvideo): update the api
* chore(dlp): update the api
* chore(dns): update the api
* chore(docs): update the api
* chore(domains): update the api
* chore(domainsrdap): update the api
* chore(doubleclickbidmanager): update the api
* chore(doubleclicksearch): update the api
* chore(drive): update the api
* chore(driveactivity): update the api
* chore(eventarc): update the api
* chore(factchecktools): update the api
* chore(fcm): update the api
* chore(file): update the api
* chore(firebase): update the api
* chore(firebasedatabase): update the api
* chore(firebasedynamiclinks): update the api
* chore(firebasehosting): update the api
* chore(firebaseml): update the api
* chore(firebaserules): update the api
* chore(firestore): update the api
* chore(fitness): update the api
* chore(gamesConfiguration): update the api
* chore(gamesManagement): update the api
* chore(gameservices): update the api
* chore(genomics): update the api
* chore(gmail): update the api
* chore(gmailpostmastertools): update the api
* chore(groupsmigration): update the api
* chore(groupssettings): update the api
* chore(healthcare): update the api
* chore(iam): update the api
* chore(iamcredentials): update the api
* chore(iap): update the api
* chore(identitytoolkit): update the api
* chore(indexing): update the api
* chore(jobs): update the api
* chore(kgsearch): update the api
* chore(language): update the api
* chore(libraryagent): update the api
* chore(licensing): update the api
* chore(lifesciences): update the api
* chore(logging): update the api
* chore(managedidentities): update the api
* chore(manufacturers): update the api
* chore(memcache): update the api
* chore(ml): update the api
* chore(monitoring): update the api
* chore(networkmanagement): update the api
* chore(osconfig): update the api
* chore(pagespeedonline): update the api
* chore(playablelocations): update the api
* chore(playcustomapp): update the api
* chore(policytroubleshooter): update the api
* chore(poly): update the api
* chore(privateca): update the api
* chore(prod_tt_sasportal): update the api
* chore(pubsub): update the api
* chore(pubsublite): update the api
* chore(realtimebidding): update the api
* chore(recommendationengine): update the api
* chore(recommender): update the api
* chore(redis): update the api
* chore(remotebuildexecution): update the api
* chore(reseller): update the api
* chore(runtimeconfig): update the api
* chore(safebrowsing): update the api
* chore(sasportal): update the api
* chore(script): update the api
* chore(searchconsole): update the api
* chore(secretmanager): update the api
* chore(servicecontrol): update the api
* chore(servicedirectory): update the api
* chore(siteVerification): update the api
* chore(slides): update the api
* chore(smartdevicemanagement): update the api
* chore(sourcerepo): update the api
* chore(sqladmin): update the api
* chore(storage): update the api
* chore(storagetransfer): update the api
* chore(streetviewpublish): update the api
* chore(sts): update the api
* chore(tagmanager): update the api
* chore(tasks): update the api
* chore(testing): update the api
* chore(texttospeech): update the api
* chore(toolresults): update the api
* chore(trafficdirector): update the api
* chore(transcoder): update the api
* chore(translate): update the api
* chore(vault): update the api
* chore(vectortile): update the api
* chore(verifiedaccess): update the api
* chore(videointelligence): update the api
* chore(vision): update the api
* chore(webfonts): update the api
* chore(webmasters): update the api
* chore(websecurityscanner): update the api
* chore(workflowexecutions): update the api
* chore(workflows): update the api
* chore(youtubeAnalytics): update the api
* chore(youtubereporting): update the api
* chore(docs): Add new discovery artifacts and reference documents
diff --git a/docs/dyn/analyticsadmin_v1alpha.accounts.html b/docs/dyn/analyticsadmin_v1alpha.accounts.html
index 1870807..ccae6b0 100644
--- a/docs/dyn/analyticsadmin_v1alpha.accounts.html
+++ b/docs/dyn/analyticsadmin_v1alpha.accounts.html
@@ -382,8 +382,9 @@
             "property": { # A resource message representing a Google Analytics GA4 property. # A snapshot of a Property resource in change history.
               "createTime": "A String", # Output only. Time when the entity was originally created.
               "currencyCode": "A String", # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR", "JPY"
-              "deleted": True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+              "deleteTime": "A String", # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
               "displayName": "A String", # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+              "expireTime": "A String", # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
               "industryCategory": "A String", # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
               "name": "A String", # Output only. Resource name of this property. Format: properties/{property_id} Example: "properties/1000"
               "parent": "A String", # Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: "accounts/100"
@@ -443,8 +444,9 @@
             "property": { # A resource message representing a Google Analytics GA4 property. # A snapshot of a Property resource in change history.
               "createTime": "A String", # Output only. Time when the entity was originally created.
               "currencyCode": "A String", # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR", "JPY"
-              "deleted": True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+              "deleteTime": "A String", # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
               "displayName": "A String", # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+              "expireTime": "A String", # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
               "industryCategory": "A String", # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
               "name": "A String", # Output only. Resource name of this property. Format: properties/{property_id} Example: "properties/1000"
               "parent": "A String", # Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: "accounts/100"
diff --git a/docs/dyn/analyticsadmin_v1alpha.properties.html b/docs/dyn/analyticsadmin_v1alpha.properties.html
index f2a8690..7237814 100644
--- a/docs/dyn/analyticsadmin_v1alpha.properties.html
+++ b/docs/dyn/analyticsadmin_v1alpha.properties.html
@@ -142,8 +142,9 @@
 { # A resource message representing a Google Analytics GA4 property.
   "createTime": "A String", # Output only. Time when the entity was originally created.
   "currencyCode": "A String", # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR", "JPY"
-  "deleted": True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+  "deleteTime": "A String", # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
   "displayName": "A String", # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+  "expireTime": "A String", # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
   "industryCategory": "A String", # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   "name": "A String", # Output only. Resource name of this property. Format: properties/{property_id} Example: "properties/1000"
   "parent": "A String", # Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: "accounts/100"
@@ -162,8 +163,9 @@
     { # A resource message representing a Google Analytics GA4 property.
   "createTime": "A String", # Output only. Time when the entity was originally created.
   "currencyCode": "A String", # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR", "JPY"
-  "deleted": True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+  "deleteTime": "A String", # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
   "displayName": "A String", # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+  "expireTime": "A String", # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
   "industryCategory": "A String", # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   "name": "A String", # Output only. Resource name of this property. Format: properties/{property_id} Example: "properties/1000"
   "parent": "A String", # Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: "accounts/100"
@@ -186,7 +188,17 @@
 Returns:
   An object of the form:
 
-    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+    { # A resource message representing a Google Analytics GA4 property.
+  "createTime": "A String", # Output only. Time when the entity was originally created.
+  "currencyCode": "A String", # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: "USD", "EUR", "JPY"
+  "deleteTime": "A String", # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
+  "displayName": "A String", # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+  "expireTime": "A String", # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
+  "industryCategory": "A String", # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
+  "name": "A String", # Output only. Resource name of this property. Format: properties/{property_id} Example: "properties/1000"
+  "parent": "A String", # Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: "accounts/100"
+  "timeZone": "A String", # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: "America/Los_Angeles"
+  "updateTime": "A String", # Output only. Time when entity payload fields were last updated.
 }</pre>
 </div>
 
@@ -207,8 +219,9 @@
     { # A resource message representing a Google Analytics GA4 property.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
   &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
-  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+  &quot;expireTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
@@ -240,8 +253,9 @@
     { # A resource message representing a Google Analytics GA4 property.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
-      &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+      &quot;expireTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
       &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
       &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
       &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
@@ -278,8 +292,9 @@
 { # A resource message representing a Google Analytics GA4 property.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
   &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
-  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+  &quot;expireTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
@@ -299,8 +314,9 @@
     { # A resource message representing a Google Analytics GA4 property.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
   &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
-  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Property is soft-deleted or not. Deleted properties are excluded from List results unless specifically requested.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
+  &quot;expireTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
diff --git a/docs/dyn/analyticsdata_v1beta.html b/docs/dyn/analyticsdata_v1beta.html
new file mode 100644
index 0000000..6a50921
--- /dev/null
+++ b/docs/dyn/analyticsdata_v1beta.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="analyticsdata_v1beta.html">Google Analytics Data API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="analyticsdata_v1beta.properties.html">properties()</a></code>
+</p>
+<p class="firstline">Returns the properties Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/analyticsdata_v1beta.properties.html b/docs/dyn/analyticsdata_v1beta.properties.html
new file mode 100644
index 0000000..e747e9e
--- /dev/null
+++ b/docs/dyn/analyticsdata_v1beta.properties.html
@@ -0,0 +1,1564 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="analyticsdata_v1beta.html">Google Analytics Data API</a> . <a href="analyticsdata_v1beta.properties.html">properties</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchRunPivotReports">batchRunPivotReports(property, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns multiple pivot reports in a batch. All reports must be for the same GA4 Property.</p>
+<p class="toc_element">
+  <code><a href="#batchRunReports">batchRunReports(property, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns multiple reports in a batch. All reports must be for the same GA4 Property.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getMetadata">getMetadata(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns metadata for dimensions and metrics available in reporting methods. Used to explore the dimensions and metrics. In this method, a Google Analytics GA4 Property Identifier is specified in the request, and the metadata response includes Custom dimensions and metrics as well as Universal metadata. For example if a custom metric with parameter name `levels_unlocked` is registered to a property, the Metadata response will contain `customEvent:levels_unlocked`. Universal metadata are dimensions and metrics applicable to any property such as `country` and `totalUsers`.</p>
+<p class="toc_element">
+  <code><a href="#runPivotReport">runPivotReport(property, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a customized pivot report of your Google Analytics event data. Pivot reports are more advanced and expressive formats than regular reports. In a pivot report, dimensions are only visible if they are included in a pivot. Multiple pivots can be specified to further dissect your data.</p>
+<p class="toc_element">
+  <code><a href="#runRealtimeReport">runRealtimeReport(property, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">The Google Analytics Realtime API returns a customized report of realtime event data for your property. These reports show events and usage from the last 30 minutes.</p>
+<p class="toc_element">
+  <code><a href="#runReport">runReport(property, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchRunPivotReports">batchRunPivotReports(property, body=None, x__xgafv=None)</code>
+  <pre>Returns multiple pivot reports in a batch. All reports must be for the same GA4 Property.
+
+Args:
+  property: string, A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). This property must be specified for the batch. The property within RunPivotReportRequest may either be unspecified or consistent with this property. Example: properties/1234 (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The batch request containing multiple pivot report requests.
+  &quot;requests&quot;: [ # Individual requests. Each request has a separate pivot report response. Each batch request is allowed up to 5 requests.
+    { # The request to generate a pivot report.
+      &quot;cohortSpec&quot;: { # The specification of cohorts for a cohort report. Cohort reports create a time series of user retention for the cohort. For example, you could select the cohort of users that were acquired in the first week of September and follow that cohort for the next six weeks. Selecting the users acquired in the first week of September cohort is specified in the `cohort` object. Following that cohort for the next six weeks is specified in the `cohortsRange` object. For examples, see [Cohort Report Examples](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced#cohort_report_examples). The report response could show a weekly time series where say your app has retained 60% of this cohort after three weeks and 25% of this cohort after six weeks. These two percentages can be calculated by the metric `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the report. # Cohort group associated with this request. If there is a cohort group in the request the &#x27;cohort&#x27; dimension must be present.
+        &quot;cohortReportSettings&quot;: { # Optional settings of a cohort report. # Optional settings for a cohort report.
+          &quot;accumulate&quot;: True or False, # If true, accumulates the result from first touch day to the end day. Not supported in `RunReportRequest`.
+        },
+        &quot;cohorts&quot;: [ # Defines the selection criteria to group users into cohorts. Most cohort reports define only a single cohort. If multiple cohorts are specified, each cohort can be recognized in the report by their name.
+          { # Defines a cohort selection criteria. A cohort is a group of users who share a common characteristic. For example, users with the same `firstSessionDate` belong to the same cohort.
+            &quot;dateRange&quot;: { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges. # The cohort selects users whose first touch date is between start date and end date defined in the `dateRange`. This `dateRange` does not specify the full date range of event data that is present in a cohort report. In a cohort report, this `dateRange` is extended by the granularity and offset present in the `cohortsRange`; event data for the extended reporting date range is present in a cohort report. In a cohort request, this `dateRange` is required and the `dateRanges` in the `RunReportRequest` or `RunPivotReportRequest` must be unspecified. This `dateRange` should generally be aligned with the cohort&#x27;s granularity. If `CohortsRange` uses daily granularity, this `dateRange` can be a single day. If `CohortsRange` uses weekly granularity, this `dateRange` can be aligned to a week boundary, starting at Sunday and ending Saturday. If `CohortsRange` uses monthly granularity, this `dateRange` can be aligned to a month, starting at the first and ending on the last day of the month.
+              &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+              &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+              &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+            },
+            &quot;dimension&quot;: &quot;A String&quot;, # Dimension used by the cohort. Required and only supports `firstSessionDate`.
+            &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this cohort. The dimension `cohort` is valued to this name in a report response. If set, cannot begin with `cohort_` or `RESERVED_`. If not set, cohorts are named by their zero based index `cohort_0`, `cohort_1`, etc.
+          },
+        ],
+        &quot;cohortsRange&quot;: { # Configures the extended reporting date range for a cohort report. Specifies an offset duration to follow the cohorts over. # Cohort reports follow cohorts over an extended reporting date range. This range specifies an offset duration to follow the cohorts over.
+          &quot;endOffset&quot;: 42, # Required. `endOffset` specifies the end date of the extended reporting date range for a cohort report. `endOffset` can be any positive integer but is commonly set to 5 to 10 so that reports contain data on the cohort for the next several granularity time periods. If `granularity` is `DAILY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset` days. If `granularity` is `WEEKLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 7` days. If `granularity` is `MONTHLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 30` days.
+          &quot;granularity&quot;: &quot;A String&quot;, # Required. The granularity used to interpret the `startOffset` and `endOffset` for the extended reporting date range for a cohort report.
+          &quot;startOffset&quot;: 42, # `startOffset` specifies the start date of the extended reporting date range for a cohort report. `startOffset` is commonly set to 0 so that reports contain data from the acquisition of the cohort forward. If `granularity` is `DAILY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset` days. If `granularity` is `WEEKLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 7` days. If `granularity` is `MONTHLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 30` days.
+        },
+      },
+      &quot;currencyCode&quot;: &quot;A String&quot;, # A currency code in ISO4217 format, such as &quot;AED&quot;, &quot;USD&quot;, &quot;JPY&quot;. If the field is empty, the report uses the property&#x27;s default currency.
+      &quot;dateRanges&quot;: [ # The date range to retrieve event data for the report. If multiple date ranges are specified, event data from each date range is used in the report. A special dimension with field name &quot;dateRange&quot; can be included in a Pivot&#x27;s field names; if included, the report compares between date ranges. In a cohort request, this `dateRanges` must be unspecified.
+        { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges.
+          &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+          &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+          &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+        },
+      ],
+      &quot;dimensionFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter.
+        &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+        &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+          &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+            &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+            &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+          &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;values&quot;: [ # The list of string values. Must be non-empty.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+            &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+            &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+            &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+          },
+        },
+        &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+        &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+      },
+      &quot;dimensions&quot;: [ # The dimensions requested. All defined dimensions must be used by one of the following: dimension_expression, dimension_filter, pivots, order_bys.
+        { # Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; for example, city could be &quot;Paris&quot; or &quot;New York&quot;. Requests are allowed up to 9 dimensions.
+          &quot;dimensionExpression&quot;: { # Used to express a dimension which is the result of a formula of multiple dimensions. Example usages: 1) lower_case(dimension) 2) concatenate(dimension1, symbol, dimension2). # One dimension can be the result of an expression of multiple dimensions. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+            &quot;concatenate&quot;: { # Used to combine dimension values to a single dimension. # Used to combine dimension values to a single dimension. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+              &quot;delimiter&quot;: &quot;A String&quot;, # The delimiter placed between dimension names. Delimiters are often single characters such as &quot;|&quot; or &quot;,&quot; but can be longer strings. If a dimension value contains the delimiter, both will be present in response with no distinction. For example if dimension 1 value = &quot;US,FR&quot;, dimension 2 value = &quot;JP&quot;, and delimiter = &quot;,&quot;, then the response will contain &quot;US,FR,JP&quot;.
+              &quot;dimensionNames&quot;: [ # Names of dimensions. The names must refer back to names in the dimensions field of the request.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;lowerCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to lower case.
+              &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+            },
+            &quot;upperCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to upper case.
+              &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+            },
+          },
+          &quot;name&quot;: &quot;A String&quot;, # The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.
+        },
+      ],
+      &quot;keepEmptyRows&quot;: True or False, # If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.
+      &quot;metricFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter.
+        &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+        &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+          &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+            &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+            &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+          &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;values&quot;: [ # The list of string values. Must be non-empty.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+            &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+            &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+            &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+          },
+        },
+        &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+        &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+      },
+      &quot;metrics&quot;: [ # The metrics requested, at least one metric needs to be specified. All defined metrics must be used by one of the following: metric_expression, metric_filter, order_bys.
+        { # The quantitative measurements of a report. For example, the metric `eventCount` is the total number of events. Requests are allowed up to 10 metrics.
+          &quot;expression&quot;: &quot;A String&quot;, # A mathematical expression for derived metrics. For example, the metric Event count per user is `eventCount/totalUsers`.
+          &quot;invisible&quot;: True or False, # Indicates if a metric is invisible in the report response. If a metric is invisible, the metric will not produce a column in the response, but can be used in `metricFilter`, `orderBys`, or a metric `expression`.
+          &quot;name&quot;: &quot;A String&quot;, # The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric&#x27;s name = `viewsPerSession`. Metric names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.
+        },
+      ],
+      &quot;pivots&quot;: [ # Describes the visual format of the report&#x27;s dimensions in columns or rows. The union of the fieldNames (dimension names) in all pivots must be a subset of dimension names defined in Dimensions. No two pivots can share a dimension. A dimension is only visible if it appears in a pivot.
+        { # Describes the visible dimension columns and rows in the report response.
+          &quot;fieldNames&quot;: [ # Dimension names for visible columns in the report response. Including &quot;dateRange&quot; produces a date range column; for each row in the response, dimension values in the date range column will indicate the corresponding date range from the request.
+            &quot;A String&quot;,
+          ],
+          &quot;limit&quot;: &quot;A String&quot;, # The number of unique combinations of dimension values to return in this pivot. The `limit` parameter is required. A `limit` of 10,000 is common for single pivot requests. The product of the `limit` for each `pivot` in a `RunPivotReportRequest` must not exceed 100,000. For example, a two pivot request with `limit: 1000` in each pivot will fail because the product is `1,000,000`.
+          &quot;metricAggregations&quot;: [ # Aggregate the metrics by dimensions in this pivot using the specified metric_aggregations.
+            &quot;A String&quot;,
+          ],
+          &quot;offset&quot;: &quot;A String&quot;, # The row count of the start row. The first row is counted as row 0.
+          &quot;orderBys&quot;: [ # Specifies how dimensions are ordered in the pivot. In the first Pivot, the OrderBys determine Row and PivotDimensionHeader ordering; in subsequent Pivots, the OrderBys determine only PivotDimensionHeader ordering. Dimensions specified in these OrderBys must be a subset of Pivot.field_names.
+            { # The sort options.
+              &quot;desc&quot;: True or False, # If true, sorts by descending order.
+              &quot;dimension&quot;: { # Sorts by dimension values. # Sorts results by a dimension&#x27;s values.
+                &quot;dimensionName&quot;: &quot;A String&quot;, # A dimension name in the request to order by.
+                &quot;orderType&quot;: &quot;A String&quot;, # Controls the rule for dimension value ordering.
+              },
+              &quot;metric&quot;: { # Sorts by metric values. # Sorts results by a metric&#x27;s values.
+                &quot;metricName&quot;: &quot;A String&quot;, # A metric name in the request to order by.
+              },
+              &quot;pivot&quot;: { # Sorts by a pivot column group. # Sorts results by a metric&#x27;s values within a pivot column group.
+                &quot;metricName&quot;: &quot;A String&quot;, # In the response to order by, order rows by this column. Must be a metric name from the request.
+                &quot;pivotSelections&quot;: [ # Used to select a dimension name and value pivot. If multiple pivot selections are given, the sort occurs on rows where all pivot selection dimension name and value pairs match the row&#x27;s dimension name and value pair.
+                  { # A pair of dimension names and values. Rows with this dimension pivot pair are ordered by the metric&#x27;s value. For example if pivots = {{&quot;browser&quot;, &quot;Chrome&quot;}} and metric_name = &quot;Sessions&quot;, then the rows will be sorted based on Sessions in Chrome. ---------|----------|----------------|----------|---------------- | Chrome | Chrome | Safari | Safari ---------|----------|----------------|----------|---------------- Country | Sessions | Pages/Sessions | Sessions | Pages/Sessions ---------|----------|----------------|----------|---------------- US | 2 | 2 | 3 | 1 ---------|----------|----------------|----------|---------------- Canada | 3 | 1 | 4 | 1 ---------|----------|----------------|----------|----------------
+                    &quot;dimensionName&quot;: &quot;A String&quot;, # Must be a dimension name from the request.
+                    &quot;dimensionValue&quot;: &quot;A String&quot;, # Order by only when the named dimension is this value.
+                  },
+                ],
+              },
+            },
+          ],
+        },
+      ],
+      &quot;property&quot;: &quot;A String&quot;, # A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234
+      &quot;returnPropertyQuota&quot;: True or False, # Toggles whether to return the current state of this Analytics Property&#x27;s quota. Quota is returned in [PropertyQuota](#PropertyQuota).
+    },
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The batch response containing multiple pivot reports.
+  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#batchRunPivotReports&quot;. Useful to distinguish between response types in JSON.
+  &quot;pivotReports&quot;: [ # Individual responses. Each response has a separate pivot report request.
+    { # The response pivot report table corresponding to a pivot request.
+      &quot;aggregates&quot;: [ # Aggregation of metric values. Can be totals, minimums, or maximums. The returned aggregations are controlled by the metric_aggregations in the pivot. The type of aggregation returned in each row is shown by the dimension_values which are set to &quot;RESERVED_&quot;.
+        { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+          &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+          &quot;metricValues&quot;: [ # List of requested visible metric values.
+            { # The value of a metric.
+              &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+            },
+          ],
+        },
+      ],
+      &quot;dimensionHeaders&quot;: [ # Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.
+        { # Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.
+          &quot;name&quot;: &quot;A String&quot;, # The dimension&#x27;s name.
+        },
+      ],
+      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#runPivotReport&quot;. Useful to distinguish between response types in JSON.
+      &quot;metadata&quot;: { # Response&#x27;s metadata carrying additional information about the report content. # Metadata for the report.
+        &quot;dataLossFromOtherRow&quot;: True or False, # If true, indicates some buckets of dimension combinations are rolled into &quot;(other)&quot; row. This can happen for high cardinality reports.
+      },
+      &quot;metricHeaders&quot;: [ # Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.
+        { # Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.
+          &quot;name&quot;: &quot;A String&quot;, # The metric&#x27;s name.
+          &quot;type&quot;: &quot;A String&quot;, # The metric&#x27;s data type.
+        },
+      ],
+      &quot;pivotHeaders&quot;: [ # Summarizes the columns and rows created by a pivot. Each pivot in the request produces one header in the response. If we have a request like this: &quot;pivots&quot;: [{ &quot;fieldNames&quot;: [&quot;country&quot;, &quot;city&quot;] }, { &quot;fieldNames&quot;: &quot;eventName&quot; }] We will have the following `pivotHeaders` in the response: &quot;pivotHeaders&quot; : [{ &quot;dimensionHeaders&quot;: [{ &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;United Kingdom&quot; }, { &quot;value&quot;: &quot;London&quot; } ] }, { &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;Japan&quot; }, { &quot;value&quot;: &quot;Osaka&quot; } ] }] }, { &quot;dimensionHeaders&quot;: [{ &quot;dimensionValues&quot;: [{ &quot;value&quot;: &quot;session_start&quot; }] }, { &quot;dimensionValues&quot;: [{ &quot;value&quot;: &quot;scroll&quot; }] }] }]
+        { # Dimensions&#x27; values in a single pivot.
+          &quot;pivotDimensionHeaders&quot;: [ # The size is the same as the cardinality of the corresponding dimension combinations.
+            { # Summarizes dimension values from a row for this pivot.
+              &quot;dimensionValues&quot;: [ # Values of multiple dimensions in a pivot.
+                { # The value of a dimension.
+                  &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+                },
+              ],
+            },
+          ],
+          &quot;rowCount&quot;: 42, # The cardinality of the pivot. The total number of rows for this pivot&#x27;s fields regardless of how the parameters `offset` and `limit` are specified in the request.
+        },
+      ],
+      &quot;propertyQuota&quot;: { # Current state of all quotas for this Analytics Property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors. # This Analytics Property&#x27;s quota state including this request.
+        &quot;concurrentRequests&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can send up to 10 concurrent requests; Analytics 360 Properties can use up to 50 concurrent requests.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;potentiallyThresholdedRequestsPerHour&quot;: { # Current state for a particular quota group. # Analytics Properties can send up to 120 requests with potentially thresholded dimensions per hour. In a batch request, each report request is individually counted for this quota if the request contains potentially thresholded dimensions.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;serverErrorsPerProjectPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties and cloud project pairs can have up to 10 server errors per hour; Analytics 360 Properties and cloud project pairs can have up to 50 server errors per hour.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;tokensPerDay&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 25,000 tokens per day; Analytics 360 Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;tokensPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from both the hourly and daily quotas.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+      },
+      &quot;rows&quot;: [ # Rows of dimension value combinations and metric values in the report.
+        { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+          &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+          &quot;metricValues&quot;: [ # List of requested visible metric values.
+            { # The value of a metric.
+              &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+            },
+          ],
+        },
+      ],
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="batchRunReports">batchRunReports(property, body=None, x__xgafv=None)</code>
+  <pre>Returns multiple reports in a batch. All reports must be for the same GA4 Property.
+
+Args:
+  property: string, A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). This property must be specified for the batch. The property within RunReportRequest may either be unspecified or consistent with this property. Example: properties/1234 (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The batch request containing multiple report requests.
+  &quot;requests&quot;: [ # Individual requests. Each request has a separate report response. Each batch request is allowed up to 5 requests.
+    { # The request to generate a report.
+      &quot;cohortSpec&quot;: { # The specification of cohorts for a cohort report. Cohort reports create a time series of user retention for the cohort. For example, you could select the cohort of users that were acquired in the first week of September and follow that cohort for the next six weeks. Selecting the users acquired in the first week of September cohort is specified in the `cohort` object. Following that cohort for the next six weeks is specified in the `cohortsRange` object. For examples, see [Cohort Report Examples](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced#cohort_report_examples). The report response could show a weekly time series where say your app has retained 60% of this cohort after three weeks and 25% of this cohort after six weeks. These two percentages can be calculated by the metric `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the report. # Cohort group associated with this request. If there is a cohort group in the request the &#x27;cohort&#x27; dimension must be present.
+        &quot;cohortReportSettings&quot;: { # Optional settings of a cohort report. # Optional settings for a cohort report.
+          &quot;accumulate&quot;: True or False, # If true, accumulates the result from first touch day to the end day. Not supported in `RunReportRequest`.
+        },
+        &quot;cohorts&quot;: [ # Defines the selection criteria to group users into cohorts. Most cohort reports define only a single cohort. If multiple cohorts are specified, each cohort can be recognized in the report by their name.
+          { # Defines a cohort selection criteria. A cohort is a group of users who share a common characteristic. For example, users with the same `firstSessionDate` belong to the same cohort.
+            &quot;dateRange&quot;: { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges. # The cohort selects users whose first touch date is between start date and end date defined in the `dateRange`. This `dateRange` does not specify the full date range of event data that is present in a cohort report. In a cohort report, this `dateRange` is extended by the granularity and offset present in the `cohortsRange`; event data for the extended reporting date range is present in a cohort report. In a cohort request, this `dateRange` is required and the `dateRanges` in the `RunReportRequest` or `RunPivotReportRequest` must be unspecified. This `dateRange` should generally be aligned with the cohort&#x27;s granularity. If `CohortsRange` uses daily granularity, this `dateRange` can be a single day. If `CohortsRange` uses weekly granularity, this `dateRange` can be aligned to a week boundary, starting at Sunday and ending Saturday. If `CohortsRange` uses monthly granularity, this `dateRange` can be aligned to a month, starting at the first and ending on the last day of the month.
+              &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+              &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+              &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+            },
+            &quot;dimension&quot;: &quot;A String&quot;, # Dimension used by the cohort. Required and only supports `firstSessionDate`.
+            &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this cohort. The dimension `cohort` is valued to this name in a report response. If set, cannot begin with `cohort_` or `RESERVED_`. If not set, cohorts are named by their zero based index `cohort_0`, `cohort_1`, etc.
+          },
+        ],
+        &quot;cohortsRange&quot;: { # Configures the extended reporting date range for a cohort report. Specifies an offset duration to follow the cohorts over. # Cohort reports follow cohorts over an extended reporting date range. This range specifies an offset duration to follow the cohorts over.
+          &quot;endOffset&quot;: 42, # Required. `endOffset` specifies the end date of the extended reporting date range for a cohort report. `endOffset` can be any positive integer but is commonly set to 5 to 10 so that reports contain data on the cohort for the next several granularity time periods. If `granularity` is `DAILY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset` days. If `granularity` is `WEEKLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 7` days. If `granularity` is `MONTHLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 30` days.
+          &quot;granularity&quot;: &quot;A String&quot;, # Required. The granularity used to interpret the `startOffset` and `endOffset` for the extended reporting date range for a cohort report.
+          &quot;startOffset&quot;: 42, # `startOffset` specifies the start date of the extended reporting date range for a cohort report. `startOffset` is commonly set to 0 so that reports contain data from the acquisition of the cohort forward. If `granularity` is `DAILY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset` days. If `granularity` is `WEEKLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 7` days. If `granularity` is `MONTHLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 30` days.
+        },
+      },
+      &quot;currencyCode&quot;: &quot;A String&quot;, # A currency code in ISO4217 format, such as &quot;AED&quot;, &quot;USD&quot;, &quot;JPY&quot;. If the field is empty, the report uses the property&#x27;s default currency.
+      &quot;dateRanges&quot;: [ # Date ranges of data to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the event data for the overlapping days is included in the response rows for both date ranges. In a cohort request, this `dateRanges` must be unspecified.
+        { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges.
+          &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+          &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+          &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+        },
+      ],
+      &quot;dimensionFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter.
+        &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+        &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+          &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+            &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+            &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+          &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;values&quot;: [ # The list of string values. Must be non-empty.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+            &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+            &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+            &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+          },
+        },
+        &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+        &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+      },
+      &quot;dimensions&quot;: [ # The dimensions requested and displayed.
+        { # Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; for example, city could be &quot;Paris&quot; or &quot;New York&quot;. Requests are allowed up to 9 dimensions.
+          &quot;dimensionExpression&quot;: { # Used to express a dimension which is the result of a formula of multiple dimensions. Example usages: 1) lower_case(dimension) 2) concatenate(dimension1, symbol, dimension2). # One dimension can be the result of an expression of multiple dimensions. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+            &quot;concatenate&quot;: { # Used to combine dimension values to a single dimension. # Used to combine dimension values to a single dimension. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+              &quot;delimiter&quot;: &quot;A String&quot;, # The delimiter placed between dimension names. Delimiters are often single characters such as &quot;|&quot; or &quot;,&quot; but can be longer strings. If a dimension value contains the delimiter, both will be present in response with no distinction. For example if dimension 1 value = &quot;US,FR&quot;, dimension 2 value = &quot;JP&quot;, and delimiter = &quot;,&quot;, then the response will contain &quot;US,FR,JP&quot;.
+              &quot;dimensionNames&quot;: [ # Names of dimensions. The names must refer back to names in the dimensions field of the request.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;lowerCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to lower case.
+              &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+            },
+            &quot;upperCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to upper case.
+              &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+            },
+          },
+          &quot;name&quot;: &quot;A String&quot;, # The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.
+        },
+      ],
+      &quot;keepEmptyRows&quot;: True or False, # If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.
+      &quot;limit&quot;: &quot;A String&quot;, # The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren&#x27;t as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can&#x27;t get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
+      &quot;metricAggregations&quot;: [ # Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to &quot;RESERVED_(MetricAggregation)&quot;.
+        &quot;A String&quot;,
+      ],
+      &quot;metricFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter.
+        &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+        &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+          &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+            &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+            &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+          &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;values&quot;: [ # The list of string values. Must be non-empty.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+            &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+            &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+              &quot;doubleValue&quot;: 3.14, # Double value
+              &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+            },
+          },
+          &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+            &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+            &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+            &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+          },
+        },
+        &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+        &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+          &quot;expressions&quot;: [ # A list of filter expressions.
+            # Object with schema name: FilterExpression
+          ],
+        },
+      },
+      &quot;metrics&quot;: [ # The metrics requested and displayed.
+        { # The quantitative measurements of a report. For example, the metric `eventCount` is the total number of events. Requests are allowed up to 10 metrics.
+          &quot;expression&quot;: &quot;A String&quot;, # A mathematical expression for derived metrics. For example, the metric Event count per user is `eventCount/totalUsers`.
+          &quot;invisible&quot;: True or False, # Indicates if a metric is invisible in the report response. If a metric is invisible, the metric will not produce a column in the response, but can be used in `metricFilter`, `orderBys`, or a metric `expression`.
+          &quot;name&quot;: &quot;A String&quot;, # The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric&#x27;s name = `viewsPerSession`. Metric names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.
+        },
+      ],
+      &quot;offset&quot;: &quot;A String&quot;, # The row count of the start row. The first row is counted as row 0. When paging, the first request does not specify offset; or equivalently, sets offset to 0; the first request returns the first `limit` of rows. The second request sets offset to the `limit` of the first request; the second request returns the second `limit` of rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
+      &quot;orderBys&quot;: [ # Specifies how rows are ordered in the response.
+        { # The sort options.
+          &quot;desc&quot;: True or False, # If true, sorts by descending order.
+          &quot;dimension&quot;: { # Sorts by dimension values. # Sorts results by a dimension&#x27;s values.
+            &quot;dimensionName&quot;: &quot;A String&quot;, # A dimension name in the request to order by.
+            &quot;orderType&quot;: &quot;A String&quot;, # Controls the rule for dimension value ordering.
+          },
+          &quot;metric&quot;: { # Sorts by metric values. # Sorts results by a metric&#x27;s values.
+            &quot;metricName&quot;: &quot;A String&quot;, # A metric name in the request to order by.
+          },
+          &quot;pivot&quot;: { # Sorts by a pivot column group. # Sorts results by a metric&#x27;s values within a pivot column group.
+            &quot;metricName&quot;: &quot;A String&quot;, # In the response to order by, order rows by this column. Must be a metric name from the request.
+            &quot;pivotSelections&quot;: [ # Used to select a dimension name and value pivot. If multiple pivot selections are given, the sort occurs on rows where all pivot selection dimension name and value pairs match the row&#x27;s dimension name and value pair.
+              { # A pair of dimension names and values. Rows with this dimension pivot pair are ordered by the metric&#x27;s value. For example if pivots = {{&quot;browser&quot;, &quot;Chrome&quot;}} and metric_name = &quot;Sessions&quot;, then the rows will be sorted based on Sessions in Chrome. ---------|----------|----------------|----------|---------------- | Chrome | Chrome | Safari | Safari ---------|----------|----------------|----------|---------------- Country | Sessions | Pages/Sessions | Sessions | Pages/Sessions ---------|----------|----------------|----------|---------------- US | 2 | 2 | 3 | 1 ---------|----------|----------------|----------|---------------- Canada | 3 | 1 | 4 | 1 ---------|----------|----------------|----------|----------------
+                &quot;dimensionName&quot;: &quot;A String&quot;, # Must be a dimension name from the request.
+                &quot;dimensionValue&quot;: &quot;A String&quot;, # Order by only when the named dimension is this value.
+              },
+            ],
+          },
+        },
+      ],
+      &quot;property&quot;: &quot;A String&quot;, # A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234
+      &quot;returnPropertyQuota&quot;: True or False, # Toggles whether to return the current state of this Analytics Property&#x27;s quota. Quota is returned in [PropertyQuota](#PropertyQuota).
+    },
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The batch response containing multiple reports.
+  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#batchRunReports&quot;. Useful to distinguish between response types in JSON.
+  &quot;reports&quot;: [ # Individual responses. Each response has a separate report request.
+    { # The response report table corresponding to a request.
+      &quot;dimensionHeaders&quot;: [ # Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.
+        { # Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.
+          &quot;name&quot;: &quot;A String&quot;, # The dimension&#x27;s name.
+        },
+      ],
+      &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#runReport&quot;. Useful to distinguish between response types in JSON.
+      &quot;maximums&quot;: [ # If requested, the maximum values of metrics.
+        { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+          &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+          &quot;metricValues&quot;: [ # List of requested visible metric values.
+            { # The value of a metric.
+              &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+            },
+          ],
+        },
+      ],
+      &quot;metadata&quot;: { # Response&#x27;s metadata carrying additional information about the report content. # Metadata for the report.
+        &quot;dataLossFromOtherRow&quot;: True or False, # If true, indicates some buckets of dimension combinations are rolled into &quot;(other)&quot; row. This can happen for high cardinality reports.
+      },
+      &quot;metricHeaders&quot;: [ # Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.
+        { # Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.
+          &quot;name&quot;: &quot;A String&quot;, # The metric&#x27;s name.
+          &quot;type&quot;: &quot;A String&quot;, # The metric&#x27;s data type.
+        },
+      ],
+      &quot;minimums&quot;: [ # If requested, the minimum values of metrics.
+        { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+          &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+          &quot;metricValues&quot;: [ # List of requested visible metric values.
+            { # The value of a metric.
+              &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+            },
+          ],
+        },
+      ],
+      &quot;propertyQuota&quot;: { # Current state of all quotas for this Analytics Property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors. # This Analytics Property&#x27;s quota state including this request.
+        &quot;concurrentRequests&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can send up to 10 concurrent requests; Analytics 360 Properties can use up to 50 concurrent requests.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;potentiallyThresholdedRequestsPerHour&quot;: { # Current state for a particular quota group. # Analytics Properties can send up to 120 requests with potentially thresholded dimensions per hour. In a batch request, each report request is individually counted for this quota if the request contains potentially thresholded dimensions.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;serverErrorsPerProjectPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties and cloud project pairs can have up to 10 server errors per hour; Analytics 360 Properties and cloud project pairs can have up to 50 server errors per hour.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;tokensPerDay&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 25,000 tokens per day; Analytics 360 Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+        &quot;tokensPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from both the hourly and daily quotas.
+          &quot;consumed&quot;: 42, # Quota consumed by this request.
+          &quot;remaining&quot;: 42, # Quota remaining after this request.
+        },
+      },
+      &quot;rowCount&quot;: 42, # The total number of rows in the query result. `rowCount` is independent of the number of rows returned in the response, the `limit` request parameter, and the `offset` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
+      &quot;rows&quot;: [ # Rows of dimension value combinations and metric values in the report.
+        { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+          &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+          &quot;metricValues&quot;: [ # List of requested visible metric values.
+            { # The value of a metric.
+              &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+            },
+          ],
+        },
+      ],
+      &quot;totals&quot;: [ # If requested, the totaled values of metrics.
+        { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+          &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+          &quot;metricValues&quot;: [ # List of requested visible metric values.
+            { # The value of a metric.
+              &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+            },
+          ],
+        },
+      ],
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getMetadata">getMetadata(name, x__xgafv=None)</code>
+  <pre>Returns metadata for dimensions and metrics available in reporting methods. Used to explore the dimensions and metrics. In this method, a Google Analytics GA4 Property Identifier is specified in the request, and the metadata response includes Custom dimensions and metrics as well as Universal metadata. For example if a custom metric with parameter name `levels_unlocked` is registered to a property, the Metadata response will contain `customEvent:levels_unlocked`. Universal metadata are dimensions and metrics applicable to any property such as `country` and `totalUsers`.
+
+Args:
+  name: string, Required. The resource name of the metadata to retrieve. This name field is specified in the URL path and not URL parameters. Property is a numeric Google Analytics GA4 Property identifier. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Example: properties/1234/metadata Set the Property ID to 0 for dimensions and metrics common to all properties. In this special mode, this method will not return custom dimensions and metrics. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The dimensions and metrics currently accepted in reporting methods.
+  &quot;dimensions&quot;: [ # The dimension descriptions.
+    { # Explains a dimension.
+      &quot;apiName&quot;: &quot;A String&quot;, # This dimension&#x27;s name. Useable in [Dimension](#Dimension)&#x27;s `name`. For example, `eventName`.
+      &quot;customDefinition&quot;: True or False, # True if the dimension is a custom dimension for this property.
+      &quot;deprecatedApiNames&quot;: [ # Still usable but deprecated names for this dimension. If populated, this dimension is available by either `apiName` or one of `deprecatedApiNames` for a period of time. After the deprecation period, the dimension will be available only by `apiName`.
+        &quot;A String&quot;,
+      ],
+      &quot;description&quot;: &quot;A String&quot;, # Description of how this dimension is used and calculated.
+      &quot;uiName&quot;: &quot;A String&quot;, # This dimension&#x27;s name within the Google Analytics user interface. For example, `Event name`.
+    },
+  ],
+  &quot;metrics&quot;: [ # The metric descriptions.
+    { # Explains a metric.
+      &quot;apiName&quot;: &quot;A String&quot;, # A metric name. Useable in [Metric](#Metric)&#x27;s `name`. For example, `eventCount`.
+      &quot;customDefinition&quot;: True or False, # True if the metric is a custom metric for this property.
+      &quot;deprecatedApiNames&quot;: [ # Still usable but deprecated names for this metric. If populated, this metric is available by either `apiName` or one of `deprecatedApiNames` for a period of time. After the deprecation period, the metric will be available only by `apiName`.
+        &quot;A String&quot;,
+      ],
+      &quot;description&quot;: &quot;A String&quot;, # Description of how this metric is used and calculated.
+      &quot;expression&quot;: &quot;A String&quot;, # The mathematical expression for this derived metric. Can be used in [Metric](#Metric)&#x27;s `expression` field for equivalent reports. Most metrics are not expressions, and for non-expressions, this field is empty.
+      &quot;type&quot;: &quot;A String&quot;, # The type of this metric.
+      &quot;uiName&quot;: &quot;A String&quot;, # This metric&#x27;s name within the Google Analytics user interface. For example, `Event count`.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Resource name of this metadata.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="runPivotReport">runPivotReport(property, body=None, x__xgafv=None)</code>
+  <pre>Returns a customized pivot report of your Google Analytics event data. Pivot reports are more advanced and expressive formats than regular reports. In a pivot report, dimensions are only visible if they are included in a pivot. Multiple pivots can be specified to further dissect your data.
+
+Args:
+  property: string, A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234 (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request to generate a pivot report.
+  &quot;cohortSpec&quot;: { # The specification of cohorts for a cohort report. Cohort reports create a time series of user retention for the cohort. For example, you could select the cohort of users that were acquired in the first week of September and follow that cohort for the next six weeks. Selecting the users acquired in the first week of September cohort is specified in the `cohort` object. Following that cohort for the next six weeks is specified in the `cohortsRange` object. For examples, see [Cohort Report Examples](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced#cohort_report_examples). The report response could show a weekly time series where say your app has retained 60% of this cohort after three weeks and 25% of this cohort after six weeks. These two percentages can be calculated by the metric `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the report. # Cohort group associated with this request. If there is a cohort group in the request the &#x27;cohort&#x27; dimension must be present.
+    &quot;cohortReportSettings&quot;: { # Optional settings of a cohort report. # Optional settings for a cohort report.
+      &quot;accumulate&quot;: True or False, # If true, accumulates the result from first touch day to the end day. Not supported in `RunReportRequest`.
+    },
+    &quot;cohorts&quot;: [ # Defines the selection criteria to group users into cohorts. Most cohort reports define only a single cohort. If multiple cohorts are specified, each cohort can be recognized in the report by their name.
+      { # Defines a cohort selection criteria. A cohort is a group of users who share a common characteristic. For example, users with the same `firstSessionDate` belong to the same cohort.
+        &quot;dateRange&quot;: { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges. # The cohort selects users whose first touch date is between start date and end date defined in the `dateRange`. This `dateRange` does not specify the full date range of event data that is present in a cohort report. In a cohort report, this `dateRange` is extended by the granularity and offset present in the `cohortsRange`; event data for the extended reporting date range is present in a cohort report. In a cohort request, this `dateRange` is required and the `dateRanges` in the `RunReportRequest` or `RunPivotReportRequest` must be unspecified. This `dateRange` should generally be aligned with the cohort&#x27;s granularity. If `CohortsRange` uses daily granularity, this `dateRange` can be a single day. If `CohortsRange` uses weekly granularity, this `dateRange` can be aligned to a week boundary, starting at Sunday and ending Saturday. If `CohortsRange` uses monthly granularity, this `dateRange` can be aligned to a month, starting at the first and ending on the last day of the month.
+          &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+          &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+          &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+        },
+        &quot;dimension&quot;: &quot;A String&quot;, # Dimension used by the cohort. Required and only supports `firstSessionDate`.
+        &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this cohort. The dimension `cohort` is valued to this name in a report response. If set, cannot begin with `cohort_` or `RESERVED_`. If not set, cohorts are named by their zero based index `cohort_0`, `cohort_1`, etc.
+      },
+    ],
+    &quot;cohortsRange&quot;: { # Configures the extended reporting date range for a cohort report. Specifies an offset duration to follow the cohorts over. # Cohort reports follow cohorts over an extended reporting date range. This range specifies an offset duration to follow the cohorts over.
+      &quot;endOffset&quot;: 42, # Required. `endOffset` specifies the end date of the extended reporting date range for a cohort report. `endOffset` can be any positive integer but is commonly set to 5 to 10 so that reports contain data on the cohort for the next several granularity time periods. If `granularity` is `DAILY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset` days. If `granularity` is `WEEKLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 7` days. If `granularity` is `MONTHLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 30` days.
+      &quot;granularity&quot;: &quot;A String&quot;, # Required. The granularity used to interpret the `startOffset` and `endOffset` for the extended reporting date range for a cohort report.
+      &quot;startOffset&quot;: 42, # `startOffset` specifies the start date of the extended reporting date range for a cohort report. `startOffset` is commonly set to 0 so that reports contain data from the acquisition of the cohort forward. If `granularity` is `DAILY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset` days. If `granularity` is `WEEKLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 7` days. If `granularity` is `MONTHLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 30` days.
+    },
+  },
+  &quot;currencyCode&quot;: &quot;A String&quot;, # A currency code in ISO4217 format, such as &quot;AED&quot;, &quot;USD&quot;, &quot;JPY&quot;. If the field is empty, the report uses the property&#x27;s default currency.
+  &quot;dateRanges&quot;: [ # The date range to retrieve event data for the report. If multiple date ranges are specified, event data from each date range is used in the report. A special dimension with field name &quot;dateRange&quot; can be included in a Pivot&#x27;s field names; if included, the report compares between date ranges. In a cohort request, this `dateRanges` must be unspecified.
+    { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges.
+      &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+      &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+      &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+    },
+  ],
+  &quot;dimensionFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter.
+    &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+    &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;values&quot;: [ # The list of string values. Must be non-empty.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+      },
+    },
+    &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+    &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+  },
+  &quot;dimensions&quot;: [ # The dimensions requested. All defined dimensions must be used by one of the following: dimension_expression, dimension_filter, pivots, order_bys.
+    { # Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; for example, city could be &quot;Paris&quot; or &quot;New York&quot;. Requests are allowed up to 9 dimensions.
+      &quot;dimensionExpression&quot;: { # Used to express a dimension which is the result of a formula of multiple dimensions. Example usages: 1) lower_case(dimension) 2) concatenate(dimension1, symbol, dimension2). # One dimension can be the result of an expression of multiple dimensions. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+        &quot;concatenate&quot;: { # Used to combine dimension values to a single dimension. # Used to combine dimension values to a single dimension. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+          &quot;delimiter&quot;: &quot;A String&quot;, # The delimiter placed between dimension names. Delimiters are often single characters such as &quot;|&quot; or &quot;,&quot; but can be longer strings. If a dimension value contains the delimiter, both will be present in response with no distinction. For example if dimension 1 value = &quot;US,FR&quot;, dimension 2 value = &quot;JP&quot;, and delimiter = &quot;,&quot;, then the response will contain &quot;US,FR,JP&quot;.
+          &quot;dimensionNames&quot;: [ # Names of dimensions. The names must refer back to names in the dimensions field of the request.
+            &quot;A String&quot;,
+          ],
+        },
+        &quot;lowerCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to lower case.
+          &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+        },
+        &quot;upperCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to upper case.
+          &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+        },
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.
+    },
+  ],
+  &quot;keepEmptyRows&quot;: True or False, # If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.
+  &quot;metricFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter.
+    &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+    &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;values&quot;: [ # The list of string values. Must be non-empty.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+      },
+    },
+    &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+    &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+  },
+  &quot;metrics&quot;: [ # The metrics requested, at least one metric needs to be specified. All defined metrics must be used by one of the following: metric_expression, metric_filter, order_bys.
+    { # The quantitative measurements of a report. For example, the metric `eventCount` is the total number of events. Requests are allowed up to 10 metrics.
+      &quot;expression&quot;: &quot;A String&quot;, # A mathematical expression for derived metrics. For example, the metric Event count per user is `eventCount/totalUsers`.
+      &quot;invisible&quot;: True or False, # Indicates if a metric is invisible in the report response. If a metric is invisible, the metric will not produce a column in the response, but can be used in `metricFilter`, `orderBys`, or a metric `expression`.
+      &quot;name&quot;: &quot;A String&quot;, # The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric&#x27;s name = `viewsPerSession`. Metric names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.
+    },
+  ],
+  &quot;pivots&quot;: [ # Describes the visual format of the report&#x27;s dimensions in columns or rows. The union of the fieldNames (dimension names) in all pivots must be a subset of dimension names defined in Dimensions. No two pivots can share a dimension. A dimension is only visible if it appears in a pivot.
+    { # Describes the visible dimension columns and rows in the report response.
+      &quot;fieldNames&quot;: [ # Dimension names for visible columns in the report response. Including &quot;dateRange&quot; produces a date range column; for each row in the response, dimension values in the date range column will indicate the corresponding date range from the request.
+        &quot;A String&quot;,
+      ],
+      &quot;limit&quot;: &quot;A String&quot;, # The number of unique combinations of dimension values to return in this pivot. The `limit` parameter is required. A `limit` of 10,000 is common for single pivot requests. The product of the `limit` for each `pivot` in a `RunPivotReportRequest` must not exceed 100,000. For example, a two pivot request with `limit: 1000` in each pivot will fail because the product is `1,000,000`.
+      &quot;metricAggregations&quot;: [ # Aggregate the metrics by dimensions in this pivot using the specified metric_aggregations.
+        &quot;A String&quot;,
+      ],
+      &quot;offset&quot;: &quot;A String&quot;, # The row count of the start row. The first row is counted as row 0.
+      &quot;orderBys&quot;: [ # Specifies how dimensions are ordered in the pivot. In the first Pivot, the OrderBys determine Row and PivotDimensionHeader ordering; in subsequent Pivots, the OrderBys determine only PivotDimensionHeader ordering. Dimensions specified in these OrderBys must be a subset of Pivot.field_names.
+        { # The sort options.
+          &quot;desc&quot;: True or False, # If true, sorts by descending order.
+          &quot;dimension&quot;: { # Sorts by dimension values. # Sorts results by a dimension&#x27;s values.
+            &quot;dimensionName&quot;: &quot;A String&quot;, # A dimension name in the request to order by.
+            &quot;orderType&quot;: &quot;A String&quot;, # Controls the rule for dimension value ordering.
+          },
+          &quot;metric&quot;: { # Sorts by metric values. # Sorts results by a metric&#x27;s values.
+            &quot;metricName&quot;: &quot;A String&quot;, # A metric name in the request to order by.
+          },
+          &quot;pivot&quot;: { # Sorts by a pivot column group. # Sorts results by a metric&#x27;s values within a pivot column group.
+            &quot;metricName&quot;: &quot;A String&quot;, # In the response to order by, order rows by this column. Must be a metric name from the request.
+            &quot;pivotSelections&quot;: [ # Used to select a dimension name and value pivot. If multiple pivot selections are given, the sort occurs on rows where all pivot selection dimension name and value pairs match the row&#x27;s dimension name and value pair.
+              { # A pair of dimension names and values. Rows with this dimension pivot pair are ordered by the metric&#x27;s value. For example if pivots = {{&quot;browser&quot;, &quot;Chrome&quot;}} and metric_name = &quot;Sessions&quot;, then the rows will be sorted based on Sessions in Chrome. ---------|----------|----------------|----------|---------------- | Chrome | Chrome | Safari | Safari ---------|----------|----------------|----------|---------------- Country | Sessions | Pages/Sessions | Sessions | Pages/Sessions ---------|----------|----------------|----------|---------------- US | 2 | 2 | 3 | 1 ---------|----------|----------------|----------|---------------- Canada | 3 | 1 | 4 | 1 ---------|----------|----------------|----------|----------------
+                &quot;dimensionName&quot;: &quot;A String&quot;, # Must be a dimension name from the request.
+                &quot;dimensionValue&quot;: &quot;A String&quot;, # Order by only when the named dimension is this value.
+              },
+            ],
+          },
+        },
+      ],
+    },
+  ],
+  &quot;property&quot;: &quot;A String&quot;, # A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234
+  &quot;returnPropertyQuota&quot;: True or False, # Toggles whether to return the current state of this Analytics Property&#x27;s quota. Quota is returned in [PropertyQuota](#PropertyQuota).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response pivot report table corresponding to a pivot request.
+  &quot;aggregates&quot;: [ # Aggregation of metric values. Can be totals, minimums, or maximums. The returned aggregations are controlled by the metric_aggregations in the pivot. The type of aggregation returned in each row is shown by the dimension_values which are set to &quot;RESERVED_&quot;.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;dimensionHeaders&quot;: [ # Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.
+    { # Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.
+      &quot;name&quot;: &quot;A String&quot;, # The dimension&#x27;s name.
+    },
+  ],
+  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#runPivotReport&quot;. Useful to distinguish between response types in JSON.
+  &quot;metadata&quot;: { # Response&#x27;s metadata carrying additional information about the report content. # Metadata for the report.
+    &quot;dataLossFromOtherRow&quot;: True or False, # If true, indicates some buckets of dimension combinations are rolled into &quot;(other)&quot; row. This can happen for high cardinality reports.
+  },
+  &quot;metricHeaders&quot;: [ # Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.
+    { # Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.
+      &quot;name&quot;: &quot;A String&quot;, # The metric&#x27;s name.
+      &quot;type&quot;: &quot;A String&quot;, # The metric&#x27;s data type.
+    },
+  ],
+  &quot;pivotHeaders&quot;: [ # Summarizes the columns and rows created by a pivot. Each pivot in the request produces one header in the response. If we have a request like this: &quot;pivots&quot;: [{ &quot;fieldNames&quot;: [&quot;country&quot;, &quot;city&quot;] }, { &quot;fieldNames&quot;: &quot;eventName&quot; }] We will have the following `pivotHeaders` in the response: &quot;pivotHeaders&quot; : [{ &quot;dimensionHeaders&quot;: [{ &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;United Kingdom&quot; }, { &quot;value&quot;: &quot;London&quot; } ] }, { &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;Japan&quot; }, { &quot;value&quot;: &quot;Osaka&quot; } ] }] }, { &quot;dimensionHeaders&quot;: [{ &quot;dimensionValues&quot;: [{ &quot;value&quot;: &quot;session_start&quot; }] }, { &quot;dimensionValues&quot;: [{ &quot;value&quot;: &quot;scroll&quot; }] }] }]
+    { # Dimensions&#x27; values in a single pivot.
+      &quot;pivotDimensionHeaders&quot;: [ # The size is the same as the cardinality of the corresponding dimension combinations.
+        { # Summarizes dimension values from a row for this pivot.
+          &quot;dimensionValues&quot;: [ # Values of multiple dimensions in a pivot.
+            { # The value of a dimension.
+              &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+            },
+          ],
+        },
+      ],
+      &quot;rowCount&quot;: 42, # The cardinality of the pivot. The total number of rows for this pivot&#x27;s fields regardless of how the parameters `offset` and `limit` are specified in the request.
+    },
+  ],
+  &quot;propertyQuota&quot;: { # Current state of all quotas for this Analytics Property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors. # This Analytics Property&#x27;s quota state including this request.
+    &quot;concurrentRequests&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can send up to 10 concurrent requests; Analytics 360 Properties can use up to 50 concurrent requests.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;potentiallyThresholdedRequestsPerHour&quot;: { # Current state for a particular quota group. # Analytics Properties can send up to 120 requests with potentially thresholded dimensions per hour. In a batch request, each report request is individually counted for this quota if the request contains potentially thresholded dimensions.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;serverErrorsPerProjectPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties and cloud project pairs can have up to 10 server errors per hour; Analytics 360 Properties and cloud project pairs can have up to 50 server errors per hour.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;tokensPerDay&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 25,000 tokens per day; Analytics 360 Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;tokensPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from both the hourly and daily quotas.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+  },
+  &quot;rows&quot;: [ # Rows of dimension value combinations and metric values in the report.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="runRealtimeReport">runRealtimeReport(property, body=None, x__xgafv=None)</code>
+  <pre>The Google Analytics Realtime API returns a customized report of realtime event data for your property. These reports show events and usage from the last 30 minutes.
+
+Args:
+  property: string, A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Example: properties/1234 (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request to generate a realtime report.
+  &quot;dimensionFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter.
+    &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+    &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;values&quot;: [ # The list of string values. Must be non-empty.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+      },
+    },
+    &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+    &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+  },
+  &quot;dimensions&quot;: [ # The dimensions requested and displayed.
+    { # Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; for example, city could be &quot;Paris&quot; or &quot;New York&quot;. Requests are allowed up to 9 dimensions.
+      &quot;dimensionExpression&quot;: { # Used to express a dimension which is the result of a formula of multiple dimensions. Example usages: 1) lower_case(dimension) 2) concatenate(dimension1, symbol, dimension2). # One dimension can be the result of an expression of multiple dimensions. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+        &quot;concatenate&quot;: { # Used to combine dimension values to a single dimension. # Used to combine dimension values to a single dimension. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+          &quot;delimiter&quot;: &quot;A String&quot;, # The delimiter placed between dimension names. Delimiters are often single characters such as &quot;|&quot; or &quot;,&quot; but can be longer strings. If a dimension value contains the delimiter, both will be present in response with no distinction. For example if dimension 1 value = &quot;US,FR&quot;, dimension 2 value = &quot;JP&quot;, and delimiter = &quot;,&quot;, then the response will contain &quot;US,FR,JP&quot;.
+          &quot;dimensionNames&quot;: [ # Names of dimensions. The names must refer back to names in the dimensions field of the request.
+            &quot;A String&quot;,
+          ],
+        },
+        &quot;lowerCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to lower case.
+          &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+        },
+        &quot;upperCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to upper case.
+          &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+        },
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.
+    },
+  ],
+  &quot;limit&quot;: &quot;A String&quot;, # The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren&#x27;t as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can&#x27;t get more than 300 rows, even if you set `limit` to a higher value.
+  &quot;metricAggregations&quot;: [ # Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to &quot;RESERVED_(MetricAggregation)&quot;.
+    &quot;A String&quot;,
+  ],
+  &quot;metricFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter.
+    &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+    &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;values&quot;: [ # The list of string values. Must be non-empty.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+      },
+    },
+    &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+    &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+  },
+  &quot;metrics&quot;: [ # The metrics requested and displayed.
+    { # The quantitative measurements of a report. For example, the metric `eventCount` is the total number of events. Requests are allowed up to 10 metrics.
+      &quot;expression&quot;: &quot;A String&quot;, # A mathematical expression for derived metrics. For example, the metric Event count per user is `eventCount/totalUsers`.
+      &quot;invisible&quot;: True or False, # Indicates if a metric is invisible in the report response. If a metric is invisible, the metric will not produce a column in the response, but can be used in `metricFilter`, `orderBys`, or a metric `expression`.
+      &quot;name&quot;: &quot;A String&quot;, # The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric&#x27;s name = `viewsPerSession`. Metric names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.
+    },
+  ],
+  &quot;orderBys&quot;: [ # Specifies how rows are ordered in the response.
+    { # The sort options.
+      &quot;desc&quot;: True or False, # If true, sorts by descending order.
+      &quot;dimension&quot;: { # Sorts by dimension values. # Sorts results by a dimension&#x27;s values.
+        &quot;dimensionName&quot;: &quot;A String&quot;, # A dimension name in the request to order by.
+        &quot;orderType&quot;: &quot;A String&quot;, # Controls the rule for dimension value ordering.
+      },
+      &quot;metric&quot;: { # Sorts by metric values. # Sorts results by a metric&#x27;s values.
+        &quot;metricName&quot;: &quot;A String&quot;, # A metric name in the request to order by.
+      },
+      &quot;pivot&quot;: { # Sorts by a pivot column group. # Sorts results by a metric&#x27;s values within a pivot column group.
+        &quot;metricName&quot;: &quot;A String&quot;, # In the response to order by, order rows by this column. Must be a metric name from the request.
+        &quot;pivotSelections&quot;: [ # Used to select a dimension name and value pivot. If multiple pivot selections are given, the sort occurs on rows where all pivot selection dimension name and value pairs match the row&#x27;s dimension name and value pair.
+          { # A pair of dimension names and values. Rows with this dimension pivot pair are ordered by the metric&#x27;s value. For example if pivots = {{&quot;browser&quot;, &quot;Chrome&quot;}} and metric_name = &quot;Sessions&quot;, then the rows will be sorted based on Sessions in Chrome. ---------|----------|----------------|----------|---------------- | Chrome | Chrome | Safari | Safari ---------|----------|----------------|----------|---------------- Country | Sessions | Pages/Sessions | Sessions | Pages/Sessions ---------|----------|----------------|----------|---------------- US | 2 | 2 | 3 | 1 ---------|----------|----------------|----------|---------------- Canada | 3 | 1 | 4 | 1 ---------|----------|----------------|----------|----------------
+            &quot;dimensionName&quot;: &quot;A String&quot;, # Must be a dimension name from the request.
+            &quot;dimensionValue&quot;: &quot;A String&quot;, # Order by only when the named dimension is this value.
+          },
+        ],
+      },
+    },
+  ],
+  &quot;returnPropertyQuota&quot;: True or False, # Toggles whether to return the current state of this Analytics Property&#x27;s Realtime quota. Quota is returned in [PropertyQuota](#PropertyQuota).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response realtime report table corresponding to a request.
+  &quot;dimensionHeaders&quot;: [ # Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.
+    { # Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.
+      &quot;name&quot;: &quot;A String&quot;, # The dimension&#x27;s name.
+    },
+  ],
+  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#runRealtimeReport&quot;. Useful to distinguish between response types in JSON.
+  &quot;maximums&quot;: [ # If requested, the maximum values of metrics.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;metricHeaders&quot;: [ # Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.
+    { # Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.
+      &quot;name&quot;: &quot;A String&quot;, # The metric&#x27;s name.
+      &quot;type&quot;: &quot;A String&quot;, # The metric&#x27;s data type.
+    },
+  ],
+  &quot;minimums&quot;: [ # If requested, the minimum values of metrics.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;propertyQuota&quot;: { # Current state of all quotas for this Analytics Property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors. # This Analytics Property&#x27;s Realtime quota state including this request.
+    &quot;concurrentRequests&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can send up to 10 concurrent requests; Analytics 360 Properties can use up to 50 concurrent requests.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;potentiallyThresholdedRequestsPerHour&quot;: { # Current state for a particular quota group. # Analytics Properties can send up to 120 requests with potentially thresholded dimensions per hour. In a batch request, each report request is individually counted for this quota if the request contains potentially thresholded dimensions.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;serverErrorsPerProjectPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties and cloud project pairs can have up to 10 server errors per hour; Analytics 360 Properties and cloud project pairs can have up to 50 server errors per hour.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;tokensPerDay&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 25,000 tokens per day; Analytics 360 Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;tokensPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from both the hourly and daily quotas.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+  },
+  &quot;rowCount&quot;: 42, # The total number of rows in the query result. `rowCount` is independent of the number of rows returned in the response and the `limit` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows.
+  &quot;rows&quot;: [ # Rows of dimension value combinations and metric values in the report.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;totals&quot;: [ # If requested, the totaled values of metrics.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="runReport">runReport(property, body=None, x__xgafv=None)</code>
+  <pre>Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name.
+
+Args:
+  property: string, A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234 (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request to generate a report.
+  &quot;cohortSpec&quot;: { # The specification of cohorts for a cohort report. Cohort reports create a time series of user retention for the cohort. For example, you could select the cohort of users that were acquired in the first week of September and follow that cohort for the next six weeks. Selecting the users acquired in the first week of September cohort is specified in the `cohort` object. Following that cohort for the next six weeks is specified in the `cohortsRange` object. For examples, see [Cohort Report Examples](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced#cohort_report_examples). The report response could show a weekly time series where say your app has retained 60% of this cohort after three weeks and 25% of this cohort after six weeks. These two percentages can be calculated by the metric `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the report. # Cohort group associated with this request. If there is a cohort group in the request the &#x27;cohort&#x27; dimension must be present.
+    &quot;cohortReportSettings&quot;: { # Optional settings of a cohort report. # Optional settings for a cohort report.
+      &quot;accumulate&quot;: True or False, # If true, accumulates the result from first touch day to the end day. Not supported in `RunReportRequest`.
+    },
+    &quot;cohorts&quot;: [ # Defines the selection criteria to group users into cohorts. Most cohort reports define only a single cohort. If multiple cohorts are specified, each cohort can be recognized in the report by their name.
+      { # Defines a cohort selection criteria. A cohort is a group of users who share a common characteristic. For example, users with the same `firstSessionDate` belong to the same cohort.
+        &quot;dateRange&quot;: { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges. # The cohort selects users whose first touch date is between start date and end date defined in the `dateRange`. This `dateRange` does not specify the full date range of event data that is present in a cohort report. In a cohort report, this `dateRange` is extended by the granularity and offset present in the `cohortsRange`; event data for the extended reporting date range is present in a cohort report. In a cohort request, this `dateRange` is required and the `dateRanges` in the `RunReportRequest` or `RunPivotReportRequest` must be unspecified. This `dateRange` should generally be aligned with the cohort&#x27;s granularity. If `CohortsRange` uses daily granularity, this `dateRange` can be a single day. If `CohortsRange` uses weekly granularity, this `dateRange` can be aligned to a week boundary, starting at Sunday and ending Saturday. If `CohortsRange` uses monthly granularity, this `dateRange` can be aligned to a month, starting at the first and ending on the last day of the month.
+          &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+          &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+          &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+        },
+        &quot;dimension&quot;: &quot;A String&quot;, # Dimension used by the cohort. Required and only supports `firstSessionDate`.
+        &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this cohort. The dimension `cohort` is valued to this name in a report response. If set, cannot begin with `cohort_` or `RESERVED_`. If not set, cohorts are named by their zero based index `cohort_0`, `cohort_1`, etc.
+      },
+    ],
+    &quot;cohortsRange&quot;: { # Configures the extended reporting date range for a cohort report. Specifies an offset duration to follow the cohorts over. # Cohort reports follow cohorts over an extended reporting date range. This range specifies an offset duration to follow the cohorts over.
+      &quot;endOffset&quot;: 42, # Required. `endOffset` specifies the end date of the extended reporting date range for a cohort report. `endOffset` can be any positive integer but is commonly set to 5 to 10 so that reports contain data on the cohort for the next several granularity time periods. If `granularity` is `DAILY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset` days. If `granularity` is `WEEKLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 7` days. If `granularity` is `MONTHLY`, the `endDate` of the extended reporting date range is `endDate` of the cohort plus `endOffset * 30` days.
+      &quot;granularity&quot;: &quot;A String&quot;, # Required. The granularity used to interpret the `startOffset` and `endOffset` for the extended reporting date range for a cohort report.
+      &quot;startOffset&quot;: 42, # `startOffset` specifies the start date of the extended reporting date range for a cohort report. `startOffset` is commonly set to 0 so that reports contain data from the acquisition of the cohort forward. If `granularity` is `DAILY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset` days. If `granularity` is `WEEKLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 7` days. If `granularity` is `MONTHLY`, the `startDate` of the extended reporting date range is `startDate` of the cohort plus `startOffset * 30` days.
+    },
+  },
+  &quot;currencyCode&quot;: &quot;A String&quot;, # A currency code in ISO4217 format, such as &quot;AED&quot;, &quot;USD&quot;, &quot;JPY&quot;. If the field is empty, the report uses the property&#x27;s default currency.
+  &quot;dateRanges&quot;: [ # Date ranges of data to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the event data for the overlapping days is included in the response rows for both date ranges. In a cohort request, this `dateRanges` must be unspecified.
+    { # A contiguous set of days: startDate, startDate + 1, ..., endDate. Requests are allowed up to 4 date ranges.
+      &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+      &quot;name&quot;: &quot;A String&quot;, # Assigns a name to this date range. The dimension `dateRange` is valued to this name in a report response. If set, cannot begin with `date_range_` or `RESERVED_`. If not set, date ranges are named by their zero based index in the request: `date_range_0`, `date_range_1`, etc.
+      &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the property&#x27;s reporting time zone.
+    },
+  ],
+  &quot;dimensionFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter.
+    &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+    &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;values&quot;: [ # The list of string values. Must be non-empty.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+      },
+    },
+    &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+    &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+  },
+  &quot;dimensions&quot;: [ # The dimensions requested and displayed.
+    { # Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; for example, city could be &quot;Paris&quot; or &quot;New York&quot;. Requests are allowed up to 9 dimensions.
+      &quot;dimensionExpression&quot;: { # Used to express a dimension which is the result of a formula of multiple dimensions. Example usages: 1) lower_case(dimension) 2) concatenate(dimension1, symbol, dimension2). # One dimension can be the result of an expression of multiple dimensions. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+        &quot;concatenate&quot;: { # Used to combine dimension values to a single dimension. # Used to combine dimension values to a single dimension. For example, dimension &quot;country, city&quot;: concatenate(country, &quot;, &quot;, city).
+          &quot;delimiter&quot;: &quot;A String&quot;, # The delimiter placed between dimension names. Delimiters are often single characters such as &quot;|&quot; or &quot;,&quot; but can be longer strings. If a dimension value contains the delimiter, both will be present in response with no distinction. For example if dimension 1 value = &quot;US,FR&quot;, dimension 2 value = &quot;JP&quot;, and delimiter = &quot;,&quot;, then the response will contain &quot;US,FR,JP&quot;.
+          &quot;dimensionNames&quot;: [ # Names of dimensions. The names must refer back to names in the dimensions field of the request.
+            &quot;A String&quot;,
+          ],
+        },
+        &quot;lowerCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to lower case.
+          &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+        },
+        &quot;upperCase&quot;: { # Used to convert a dimension value to a single case. # Used to convert a dimension value to upper case.
+          &quot;dimensionName&quot;: &quot;A String&quot;, # Name of a dimension. The name must refer back to a name in dimensions field of the request.
+        },
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names. If `dimensionExpression` is specified, `name` can be any string that you would like within the allowed character set. For example if a `dimensionExpression` concatenates `country` and `city`, you could call that dimension `countryAndCity`. Dimension names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Dimensions are referenced by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and `pivots`.
+    },
+  ],
+  &quot;keepEmptyRows&quot;: True or False, # If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.
+  &quot;limit&quot;: &quot;A String&quot;, # The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren&#x27;t as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can&#x27;t get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
+  &quot;metricAggregations&quot;: [ # Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to &quot;RESERVED_(MetricAggregation)&quot;.
+    &quot;A String&quot;,
+  ],
+  &quot;metricFilter&quot;: { # To express dimension or metric filters. The fields in the same FilterExpression need to be either all dimensions or all metrics. # The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter.
+    &quot;andGroup&quot;: { # A list of filter expressions. # The FilterExpressions in and_group have an AND relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+    &quot;filter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. All fields in filter in same FilterExpression needs to be either all dimensions or metrics.
+      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
+        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name. Must be a name defined in dimensions or metrics.
+      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;values&quot;: [ # The list of string values. Must be non-empty.
+          &quot;A String&quot;,
+        ],
+      },
+      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
+        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
+        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
+          &quot;doubleValue&quot;: 3.14, # Double value
+          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
+        },
+      },
+      &quot;stringFilter&quot;: { # The filter for string # Strings related filter.
+        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
+        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
+        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
+      },
+    },
+    &quot;notExpression&quot;: # Object with schema name: FilterExpression # The FilterExpression is NOT of not_expression.
+    &quot;orGroup&quot;: { # A list of filter expressions. # The FilterExpressions in or_group have an OR relationship.
+      &quot;expressions&quot;: [ # A list of filter expressions.
+        # Object with schema name: FilterExpression
+      ],
+    },
+  },
+  &quot;metrics&quot;: [ # The metrics requested and displayed.
+    { # The quantitative measurements of a report. For example, the metric `eventCount` is the total number of events. Requests are allowed up to 10 metrics.
+      &quot;expression&quot;: &quot;A String&quot;, # A mathematical expression for derived metrics. For example, the metric Event count per user is `eventCount/totalUsers`.
+      &quot;invisible&quot;: True or False, # Indicates if a metric is invisible in the report response. If a metric is invisible, the metric will not produce a column in the response, but can be used in `metricFilter`, `orderBys`, or a metric `expression`.
+      &quot;name&quot;: &quot;A String&quot;, # The name of the metric. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of metric names. If `expression` is specified, `name` can be any string that you would like within the allowed character set. For example if `expression` is `screenPageViews/sessions`, you could call that metric&#x27;s name = `viewsPerSession`. Metric names that you choose must match the regular expression &quot;^[a-zA-Z0-9_]$&quot;. Metrics are referenced by `name` in `metricFilter`, `orderBys`, and metric `expression`.
+    },
+  ],
+  &quot;offset&quot;: &quot;A String&quot;, # The row count of the start row. The first row is counted as row 0. When paging, the first request does not specify offset; or equivalently, sets offset to 0; the first request returns the first `limit` of rows. The second request sets offset to the `limit` of the first request; the second request returns the second `limit` of rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
+  &quot;orderBys&quot;: [ # Specifies how rows are ordered in the response.
+    { # The sort options.
+      &quot;desc&quot;: True or False, # If true, sorts by descending order.
+      &quot;dimension&quot;: { # Sorts by dimension values. # Sorts results by a dimension&#x27;s values.
+        &quot;dimensionName&quot;: &quot;A String&quot;, # A dimension name in the request to order by.
+        &quot;orderType&quot;: &quot;A String&quot;, # Controls the rule for dimension value ordering.
+      },
+      &quot;metric&quot;: { # Sorts by metric values. # Sorts results by a metric&#x27;s values.
+        &quot;metricName&quot;: &quot;A String&quot;, # A metric name in the request to order by.
+      },
+      &quot;pivot&quot;: { # Sorts by a pivot column group. # Sorts results by a metric&#x27;s values within a pivot column group.
+        &quot;metricName&quot;: &quot;A String&quot;, # In the response to order by, order rows by this column. Must be a metric name from the request.
+        &quot;pivotSelections&quot;: [ # Used to select a dimension name and value pivot. If multiple pivot selections are given, the sort occurs on rows where all pivot selection dimension name and value pairs match the row&#x27;s dimension name and value pair.
+          { # A pair of dimension names and values. Rows with this dimension pivot pair are ordered by the metric&#x27;s value. For example if pivots = {{&quot;browser&quot;, &quot;Chrome&quot;}} and metric_name = &quot;Sessions&quot;, then the rows will be sorted based on Sessions in Chrome. ---------|----------|----------------|----------|---------------- | Chrome | Chrome | Safari | Safari ---------|----------|----------------|----------|---------------- Country | Sessions | Pages/Sessions | Sessions | Pages/Sessions ---------|----------|----------------|----------|---------------- US | 2 | 2 | 3 | 1 ---------|----------|----------------|----------|---------------- Canada | 3 | 1 | 4 | 1 ---------|----------|----------------|----------|----------------
+            &quot;dimensionName&quot;: &quot;A String&quot;, # Must be a dimension name from the request.
+            &quot;dimensionValue&quot;: &quot;A String&quot;, # Order by only when the named dimension is this value.
+          },
+        ],
+      },
+    },
+  ],
+  &quot;property&quot;: &quot;A String&quot;, # A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234
+  &quot;returnPropertyQuota&quot;: True or False, # Toggles whether to return the current state of this Analytics Property&#x27;s quota. Quota is returned in [PropertyQuota](#PropertyQuota).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response report table corresponding to a request.
+  &quot;dimensionHeaders&quot;: [ # Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.
+    { # Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.
+      &quot;name&quot;: &quot;A String&quot;, # The dimension&#x27;s name.
+    },
+  ],
+  &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this message is. This `kind` is always the fixed string &quot;analyticsData#runReport&quot;. Useful to distinguish between response types in JSON.
+  &quot;maximums&quot;: [ # If requested, the maximum values of metrics.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;metadata&quot;: { # Response&#x27;s metadata carrying additional information about the report content. # Metadata for the report.
+    &quot;dataLossFromOtherRow&quot;: True or False, # If true, indicates some buckets of dimension combinations are rolled into &quot;(other)&quot; row. This can happen for high cardinality reports.
+  },
+  &quot;metricHeaders&quot;: [ # Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.
+    { # Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.
+      &quot;name&quot;: &quot;A String&quot;, # The metric&#x27;s name.
+      &quot;type&quot;: &quot;A String&quot;, # The metric&#x27;s data type.
+    },
+  ],
+  &quot;minimums&quot;: [ # If requested, the minimum values of metrics.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;propertyQuota&quot;: { # Current state of all quotas for this Analytics Property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors. # This Analytics Property&#x27;s quota state including this request.
+    &quot;concurrentRequests&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can send up to 10 concurrent requests; Analytics 360 Properties can use up to 50 concurrent requests.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;potentiallyThresholdedRequestsPerHour&quot;: { # Current state for a particular quota group. # Analytics Properties can send up to 120 requests with potentially thresholded dimensions per hour. In a batch request, each report request is individually counted for this quota if the request contains potentially thresholded dimensions.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;serverErrorsPerProjectPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties and cloud project pairs can have up to 10 server errors per hour; Analytics 360 Properties and cloud project pairs can have up to 50 server errors per hour.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;tokensPerDay&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 25,000 tokens per day; Analytics 360 Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+    &quot;tokensPerHour&quot;: { # Current state for a particular quota group. # Standard Analytics Properties can use up to 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from both the hourly and daily quotas.
+      &quot;consumed&quot;: 42, # Quota consumed by this request.
+      &quot;remaining&quot;: 42, # Quota remaining after this request.
+    },
+  },
+  &quot;rowCount&quot;: 42, # The total number of rows in the query result. `rowCount` is independent of the number of rows returned in the response, the `limit` request parameter, and the `offset` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
+  &quot;rows&quot;: [ # Rows of dimension value combinations and metric values in the report.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+  &quot;totals&quot;: [ # If requested, the totaled values of metrics.
+    { # Report data for each row. For example if RunReportRequest contains: ```none &quot;dimensions&quot;: [ { &quot;name&quot;: &quot;eventName&quot; }, { &quot;name&quot;: &quot;countryId&quot; } ], &quot;metrics&quot;: [ { &quot;name&quot;: &quot;eventCount&quot; } ] ``` One row with &#x27;in_app_purchase&#x27; as the eventName, &#x27;JP&#x27; as the countryId, and 15 as the eventCount, would be: ```none &quot;dimensionValues&quot;: [ { &quot;value&quot;: &quot;in_app_purchase&quot; }, { &quot;value&quot;: &quot;JP&quot; } ], &quot;metricValues&quot;: [ { &quot;value&quot;: &quot;15&quot; } ] ```
+      &quot;dimensionValues&quot;: [ # List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot.
+        { # The value of a dimension.
+          &quot;value&quot;: &quot;A String&quot;, # Value as a string if the dimension type is a string.
+        },
+      ],
+      &quot;metricValues&quot;: [ # List of requested visible metric values.
+        { # The value of a metric.
+          &quot;value&quot;: &quot;A String&quot;, # Measurement value. See MetricHeader for type.
+        },
+      ],
+    },
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/androidmanagement_v1.enterprises.devices.html b/docs/dyn/androidmanagement_v1.enterprises.devices.html
index 2d08a9b..6ba8bca 100644
--- a/docs/dyn/androidmanagement_v1.enterprises.devices.html
+++ b/docs/dyn/androidmanagement_v1.enterprises.devices.html
@@ -190,7 +190,7 @@
     &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
     &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
     &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
-    &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
+    &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
   },
   &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # If the device state is DISABLED, an optional message that is displayed on the device indicating the reason the device is disabled. This field can be modified by a patch request.
     &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
@@ -475,7 +475,7 @@
         &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
         &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
         &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
-        &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
+        &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
       },
       &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # If the device state is DISABLED, an optional message that is displayed on the device indicating the reason the device is disabled. This field can be modified by a patch request.
         &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
@@ -718,7 +718,7 @@
     &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
     &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
     &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
-    &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
+    &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
   },
   &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # If the device state is DISABLED, an optional message that is displayed on the device indicating the reason the device is disabled. This field can be modified by a patch request.
     &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
@@ -943,7 +943,7 @@
     &quot;isDeviceSecure&quot;: True or False, # Whether the device is secured with PIN/password.
     &quot;isEncrypted&quot;: True or False, # Whether the storage encryption is enabled.
     &quot;unknownSourcesEnabled&quot;: True or False, # Whether installing apps from unknown sources is enabled.
-    &quot;verifyAppsEnabled&quot;: True or False, # Whether Verify Apps (Google Play Protect (https://support.google.com/googleplay/answer/2812853)) is enabled on the device.
+    &quot;verifyAppsEnabled&quot;: True or False, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced on the device.
   },
   &quot;disabledReason&quot;: { # Provides a user-facing message with locale info. The maximum message length is 4096 characters. # If the device state is DISABLED, an optional message that is displayed on the device indicating the reason the device is disabled. This field can be modified by a patch request.
     &quot;defaultMessage&quot;: &quot;A String&quot;, # The default message displayed if no localized message is specified or the user&#x27;s locale doesn&#x27;t match with any of the localized messages. A default message must be provided if any localized messages are provided.
diff --git a/docs/dyn/androidmanagement_v1.enterprises.policies.html b/docs/dyn/androidmanagement_v1.enterprises.policies.html
index b41c6cf..5eda8a2 100644
--- a/docs/dyn/androidmanagement_v1.enterprises.policies.html
+++ b/docs/dyn/androidmanagement_v1.enterprises.policies.html
@@ -138,6 +138,8 @@
   &quot;adjustVolumeDisabled&quot;: True or False, # Whether adjusting the master volume is disabled. Also mutes the device.
   &quot;advancedSecurityOverrides&quot;: { # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values. # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values.
     &quot;commonCriteriaMode&quot;: &quot;A String&quot;, # Controls Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC). Enabling Common Criteria Mode increases certain security components on a device, including AES-GCM encryption of Bluetooth Long Term Keys, and Wi-Fi configuration stores.Warning: Common Criteria Mode enforces a strict security model typically only required for IT products used in national security systems and other highly sensitive organizations. Standard device use may be affected. Only enabled if required.
+    &quot;developerSettings&quot;: &quot;A String&quot;, # Controls access to developer settings: developer options and safe boot. Replaces safeBootDisabled (deprecated) and debuggingFeaturesAllowed (deprecated).
+    &quot;googlePlayProtectVerifyApps&quot;: &quot;A String&quot;, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced. Replaces ensureVerifyAppsEnabled (deprecated).
     &quot;untrustedAppsPolicy&quot;: &quot;A String&quot;, # The policy for untrusted apps (apps from unknown sources) enforced on the device. Replaces install_unknown_sources_allowed (deprecated).
   },
   &quot;alwaysOnVpnPackage&quot;: { # Configuration for an always-on VPN connection. # Configuration for an always-on VPN connection. Use with vpn_config_disabled to prevent modification of this setting.
@@ -189,13 +191,13 @@
   &quot;bluetoothDisabled&quot;: True or False, # Whether bluetooth is disabled. Prefer this setting over bluetooth_config_disabled because bluetooth_config_disabled can be bypassed by the user.
   &quot;cameraDisabled&quot;: True or False, # Whether all cameras on the device are disabled.
   &quot;cellBroadcastsConfigDisabled&quot;: True or False, # Whether configuring cell broadcast is disabled.
-  &quot;choosePrivateKeyRules&quot;: [ # Rules for automatically choosing a private key and certificate to authenticate the device to a server. The rules are ordered by increasing precedence, so if an outgoing request matches more than one rule, the last rule defines which private key to use.
-    { # A rule for automatically choosing a private key and certificate to authenticate the device to a server.
-      &quot;packageNames&quot;: [ # The package names for which outgoing requests are subject to this rule. If no package names are specified, then the rule applies to all packages. For each package name listed, the rule applies to that package and all other packages that shared the same Android UID. The SHA256 hash of the signing key signatures of each package_name will be verified against those provided by Play
+  &quot;choosePrivateKeyRules&quot;: [ # Rules for determining apps&#x27; access to private keys. See ChoosePrivateKeyRule for details.
+    { # Controls apps&#x27; access to private keys. The rule determines which private key, if any, Android Device Policy grants to the specified app. Access is granted either when the app calls KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) (or any overloads) to request a private key alias for a given URL, or for rules that are not URL-specific (that is, if urlPattern is not set, or set to the empty string or .*) on Android 11 and above, directly so that the app can call KeyChain.getPrivateKey (https://developer.android.com/reference/android/security/KeyChain#getPrivateKey%28android.content.Context,%20java.lang.String%29), without first having to call KeyChain.choosePrivateKeyAlias.When an app calls KeyChain.choosePrivateKeyAlias if more than one choosePrivateKeyRules matches, the last matching rule defines which key alias to return.
+      &quot;packageNames&quot;: [ # The package names to which this rule applies. The hash of the signing certificate for each app is verified against the hash provided by Play. If no package names are specified, then the alias is provided to all apps that call KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) or any overloads (but not without calling KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any app with the same Android UID as a package specified here will have access when they call KeyChain.choosePrivateKeyAlias.
         &quot;A String&quot;,
       ],
       &quot;privateKeyAlias&quot;: &quot;A String&quot;, # The alias of the private key to be used.
-      &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the outgoing request. The pattern may contain asterisk (*) wildcards. Any URL is matched if unspecified.
+      &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the request. If not set or empty, it matches all URLs. This uses the regular expression syntax of java.util.regex.Pattern.
     },
   ],
   &quot;complianceRules&quot;: [ # Rules declaring which mitigating actions to take when a device is not compliant with its policy. When the conditions for multiple rules are satisfied, all of the mitigating actions for the rules are taken. There is a maximum limit of 100 rules. Use policy enforcement rules instead.
@@ -259,7 +261,7 @@
   &quot;modifyAccountsDisabled&quot;: True or False, # Whether adding or removing accounts is disabled.
   &quot;mountPhysicalMediaDisabled&quot;: True or False, # Whether the user mounting physical external media is disabled.
   &quot;name&quot;: &quot;A String&quot;, # The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.
-  &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.
+  &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.Note: Setting wifiConfigDisabled to true will override this setting under specific circumstances. Please see wifiConfigDisabled for further details.
   &quot;networkResetDisabled&quot;: True or False, # Whether resetting network settings is disabled.
   &quot;oncCertificateProviders&quot;: [ # This feature is not generally available.
     { # This feature is not generally available.
@@ -297,7 +299,7 @@
       &quot;requirePasswordUnlock&quot;: &quot;A String&quot;, # The length of time after a device or work profile is unlocked using a strong form of authentication (password, PIN, pattern) that it can be unlocked using any other authentication method (e.g. fingerprint, trust agents, face). After the specified time period elapses, only strong forms of authentication can be used to unlock the device or work profile.
     },
   ],
-  &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.
+  &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.Note:Complexity-based values of PasswordQuality, that is, COMPLEXITY_LOW, COMPLEXITY_MEDIUM, and COMPLEXITY_HIGH, cannot be used here.
     &quot;maximumFailedPasswordsForWipe&quot;: 42, # Number of incorrect device-unlock passwords that can be entered before a device is wiped. A value of 0 means there is no restriction.
     &quot;passwordExpirationTimeout&quot;: &quot;A String&quot;, # Password expiration timeout.
     &quot;passwordHistoryLength&quot;: 42, # The length of the password history. After setting this field, the user won&#x27;t be able to enter a new password that is the same as any password in the history. A value of 0 means there is no restriction.
@@ -455,7 +457,7 @@
   &quot;usbMassStorageEnabled&quot;: True or False, # Whether USB storage is enabled. Deprecated.
   &quot;version&quot;: &quot;A String&quot;, # The version of the policy. This is a read-only field. The version is incremented each time the policy is updated.
   &quot;vpnConfigDisabled&quot;: True or False, # Whether configuring VPN is disabled.
-  &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.
+  &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.Note: If a network connection can&#x27;t be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled).
   &quot;wifiConfigsLockdownEnabled&quot;: True or False, # DEPRECATED - Use wifi_config_disabled.
 }</pre>
 </div>
@@ -487,6 +489,8 @@
       &quot;adjustVolumeDisabled&quot;: True or False, # Whether adjusting the master volume is disabled. Also mutes the device.
       &quot;advancedSecurityOverrides&quot;: { # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values. # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values.
         &quot;commonCriteriaMode&quot;: &quot;A String&quot;, # Controls Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC). Enabling Common Criteria Mode increases certain security components on a device, including AES-GCM encryption of Bluetooth Long Term Keys, and Wi-Fi configuration stores.Warning: Common Criteria Mode enforces a strict security model typically only required for IT products used in national security systems and other highly sensitive organizations. Standard device use may be affected. Only enabled if required.
+        &quot;developerSettings&quot;: &quot;A String&quot;, # Controls access to developer settings: developer options and safe boot. Replaces safeBootDisabled (deprecated) and debuggingFeaturesAllowed (deprecated).
+        &quot;googlePlayProtectVerifyApps&quot;: &quot;A String&quot;, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced. Replaces ensureVerifyAppsEnabled (deprecated).
         &quot;untrustedAppsPolicy&quot;: &quot;A String&quot;, # The policy for untrusted apps (apps from unknown sources) enforced on the device. Replaces install_unknown_sources_allowed (deprecated).
       },
       &quot;alwaysOnVpnPackage&quot;: { # Configuration for an always-on VPN connection. # Configuration for an always-on VPN connection. Use with vpn_config_disabled to prevent modification of this setting.
@@ -538,13 +542,13 @@
       &quot;bluetoothDisabled&quot;: True or False, # Whether bluetooth is disabled. Prefer this setting over bluetooth_config_disabled because bluetooth_config_disabled can be bypassed by the user.
       &quot;cameraDisabled&quot;: True or False, # Whether all cameras on the device are disabled.
       &quot;cellBroadcastsConfigDisabled&quot;: True or False, # Whether configuring cell broadcast is disabled.
-      &quot;choosePrivateKeyRules&quot;: [ # Rules for automatically choosing a private key and certificate to authenticate the device to a server. The rules are ordered by increasing precedence, so if an outgoing request matches more than one rule, the last rule defines which private key to use.
-        { # A rule for automatically choosing a private key and certificate to authenticate the device to a server.
-          &quot;packageNames&quot;: [ # The package names for which outgoing requests are subject to this rule. If no package names are specified, then the rule applies to all packages. For each package name listed, the rule applies to that package and all other packages that shared the same Android UID. The SHA256 hash of the signing key signatures of each package_name will be verified against those provided by Play
+      &quot;choosePrivateKeyRules&quot;: [ # Rules for determining apps&#x27; access to private keys. See ChoosePrivateKeyRule for details.
+        { # Controls apps&#x27; access to private keys. The rule determines which private key, if any, Android Device Policy grants to the specified app. Access is granted either when the app calls KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) (or any overloads) to request a private key alias for a given URL, or for rules that are not URL-specific (that is, if urlPattern is not set, or set to the empty string or .*) on Android 11 and above, directly so that the app can call KeyChain.getPrivateKey (https://developer.android.com/reference/android/security/KeyChain#getPrivateKey%28android.content.Context,%20java.lang.String%29), without first having to call KeyChain.choosePrivateKeyAlias.When an app calls KeyChain.choosePrivateKeyAlias if more than one choosePrivateKeyRules matches, the last matching rule defines which key alias to return.
+          &quot;packageNames&quot;: [ # The package names to which this rule applies. The hash of the signing certificate for each app is verified against the hash provided by Play. If no package names are specified, then the alias is provided to all apps that call KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) or any overloads (but not without calling KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any app with the same Android UID as a package specified here will have access when they call KeyChain.choosePrivateKeyAlias.
             &quot;A String&quot;,
           ],
           &quot;privateKeyAlias&quot;: &quot;A String&quot;, # The alias of the private key to be used.
-          &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the outgoing request. The pattern may contain asterisk (*) wildcards. Any URL is matched if unspecified.
+          &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the request. If not set or empty, it matches all URLs. This uses the regular expression syntax of java.util.regex.Pattern.
         },
       ],
       &quot;complianceRules&quot;: [ # Rules declaring which mitigating actions to take when a device is not compliant with its policy. When the conditions for multiple rules are satisfied, all of the mitigating actions for the rules are taken. There is a maximum limit of 100 rules. Use policy enforcement rules instead.
@@ -608,7 +612,7 @@
       &quot;modifyAccountsDisabled&quot;: True or False, # Whether adding or removing accounts is disabled.
       &quot;mountPhysicalMediaDisabled&quot;: True or False, # Whether the user mounting physical external media is disabled.
       &quot;name&quot;: &quot;A String&quot;, # The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.
-      &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.
+      &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.Note: Setting wifiConfigDisabled to true will override this setting under specific circumstances. Please see wifiConfigDisabled for further details.
       &quot;networkResetDisabled&quot;: True or False, # Whether resetting network settings is disabled.
       &quot;oncCertificateProviders&quot;: [ # This feature is not generally available.
         { # This feature is not generally available.
@@ -646,7 +650,7 @@
           &quot;requirePasswordUnlock&quot;: &quot;A String&quot;, # The length of time after a device or work profile is unlocked using a strong form of authentication (password, PIN, pattern) that it can be unlocked using any other authentication method (e.g. fingerprint, trust agents, face). After the specified time period elapses, only strong forms of authentication can be used to unlock the device or work profile.
         },
       ],
-      &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.
+      &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.Note:Complexity-based values of PasswordQuality, that is, COMPLEXITY_LOW, COMPLEXITY_MEDIUM, and COMPLEXITY_HIGH, cannot be used here.
         &quot;maximumFailedPasswordsForWipe&quot;: 42, # Number of incorrect device-unlock passwords that can be entered before a device is wiped. A value of 0 means there is no restriction.
         &quot;passwordExpirationTimeout&quot;: &quot;A String&quot;, # Password expiration timeout.
         &quot;passwordHistoryLength&quot;: 42, # The length of the password history. After setting this field, the user won&#x27;t be able to enter a new password that is the same as any password in the history. A value of 0 means there is no restriction.
@@ -804,7 +808,7 @@
       &quot;usbMassStorageEnabled&quot;: True or False, # Whether USB storage is enabled. Deprecated.
       &quot;version&quot;: &quot;A String&quot;, # The version of the policy. This is a read-only field. The version is incremented each time the policy is updated.
       &quot;vpnConfigDisabled&quot;: True or False, # Whether configuring VPN is disabled.
-      &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.
+      &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.Note: If a network connection can&#x27;t be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled).
       &quot;wifiConfigsLockdownEnabled&quot;: True or False, # DEPRECATED - Use wifi_config_disabled.
     },
   ],
@@ -842,6 +846,8 @@
   &quot;adjustVolumeDisabled&quot;: True or False, # Whether adjusting the master volume is disabled. Also mutes the device.
   &quot;advancedSecurityOverrides&quot;: { # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values. # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values.
     &quot;commonCriteriaMode&quot;: &quot;A String&quot;, # Controls Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC). Enabling Common Criteria Mode increases certain security components on a device, including AES-GCM encryption of Bluetooth Long Term Keys, and Wi-Fi configuration stores.Warning: Common Criteria Mode enforces a strict security model typically only required for IT products used in national security systems and other highly sensitive organizations. Standard device use may be affected. Only enabled if required.
+    &quot;developerSettings&quot;: &quot;A String&quot;, # Controls access to developer settings: developer options and safe boot. Replaces safeBootDisabled (deprecated) and debuggingFeaturesAllowed (deprecated).
+    &quot;googlePlayProtectVerifyApps&quot;: &quot;A String&quot;, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced. Replaces ensureVerifyAppsEnabled (deprecated).
     &quot;untrustedAppsPolicy&quot;: &quot;A String&quot;, # The policy for untrusted apps (apps from unknown sources) enforced on the device. Replaces install_unknown_sources_allowed (deprecated).
   },
   &quot;alwaysOnVpnPackage&quot;: { # Configuration for an always-on VPN connection. # Configuration for an always-on VPN connection. Use with vpn_config_disabled to prevent modification of this setting.
@@ -893,13 +899,13 @@
   &quot;bluetoothDisabled&quot;: True or False, # Whether bluetooth is disabled. Prefer this setting over bluetooth_config_disabled because bluetooth_config_disabled can be bypassed by the user.
   &quot;cameraDisabled&quot;: True or False, # Whether all cameras on the device are disabled.
   &quot;cellBroadcastsConfigDisabled&quot;: True or False, # Whether configuring cell broadcast is disabled.
-  &quot;choosePrivateKeyRules&quot;: [ # Rules for automatically choosing a private key and certificate to authenticate the device to a server. The rules are ordered by increasing precedence, so if an outgoing request matches more than one rule, the last rule defines which private key to use.
-    { # A rule for automatically choosing a private key and certificate to authenticate the device to a server.
-      &quot;packageNames&quot;: [ # The package names for which outgoing requests are subject to this rule. If no package names are specified, then the rule applies to all packages. For each package name listed, the rule applies to that package and all other packages that shared the same Android UID. The SHA256 hash of the signing key signatures of each package_name will be verified against those provided by Play
+  &quot;choosePrivateKeyRules&quot;: [ # Rules for determining apps&#x27; access to private keys. See ChoosePrivateKeyRule for details.
+    { # Controls apps&#x27; access to private keys. The rule determines which private key, if any, Android Device Policy grants to the specified app. Access is granted either when the app calls KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) (or any overloads) to request a private key alias for a given URL, or for rules that are not URL-specific (that is, if urlPattern is not set, or set to the empty string or .*) on Android 11 and above, directly so that the app can call KeyChain.getPrivateKey (https://developer.android.com/reference/android/security/KeyChain#getPrivateKey%28android.content.Context,%20java.lang.String%29), without first having to call KeyChain.choosePrivateKeyAlias.When an app calls KeyChain.choosePrivateKeyAlias if more than one choosePrivateKeyRules matches, the last matching rule defines which key alias to return.
+      &quot;packageNames&quot;: [ # The package names to which this rule applies. The hash of the signing certificate for each app is verified against the hash provided by Play. If no package names are specified, then the alias is provided to all apps that call KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) or any overloads (but not without calling KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any app with the same Android UID as a package specified here will have access when they call KeyChain.choosePrivateKeyAlias.
         &quot;A String&quot;,
       ],
       &quot;privateKeyAlias&quot;: &quot;A String&quot;, # The alias of the private key to be used.
-      &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the outgoing request. The pattern may contain asterisk (*) wildcards. Any URL is matched if unspecified.
+      &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the request. If not set or empty, it matches all URLs. This uses the regular expression syntax of java.util.regex.Pattern.
     },
   ],
   &quot;complianceRules&quot;: [ # Rules declaring which mitigating actions to take when a device is not compliant with its policy. When the conditions for multiple rules are satisfied, all of the mitigating actions for the rules are taken. There is a maximum limit of 100 rules. Use policy enforcement rules instead.
@@ -963,7 +969,7 @@
   &quot;modifyAccountsDisabled&quot;: True or False, # Whether adding or removing accounts is disabled.
   &quot;mountPhysicalMediaDisabled&quot;: True or False, # Whether the user mounting physical external media is disabled.
   &quot;name&quot;: &quot;A String&quot;, # The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.
-  &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.
+  &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.Note: Setting wifiConfigDisabled to true will override this setting under specific circumstances. Please see wifiConfigDisabled for further details.
   &quot;networkResetDisabled&quot;: True or False, # Whether resetting network settings is disabled.
   &quot;oncCertificateProviders&quot;: [ # This feature is not generally available.
     { # This feature is not generally available.
@@ -1001,7 +1007,7 @@
       &quot;requirePasswordUnlock&quot;: &quot;A String&quot;, # The length of time after a device or work profile is unlocked using a strong form of authentication (password, PIN, pattern) that it can be unlocked using any other authentication method (e.g. fingerprint, trust agents, face). After the specified time period elapses, only strong forms of authentication can be used to unlock the device or work profile.
     },
   ],
-  &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.
+  &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.Note:Complexity-based values of PasswordQuality, that is, COMPLEXITY_LOW, COMPLEXITY_MEDIUM, and COMPLEXITY_HIGH, cannot be used here.
     &quot;maximumFailedPasswordsForWipe&quot;: 42, # Number of incorrect device-unlock passwords that can be entered before a device is wiped. A value of 0 means there is no restriction.
     &quot;passwordExpirationTimeout&quot;: &quot;A String&quot;, # Password expiration timeout.
     &quot;passwordHistoryLength&quot;: 42, # The length of the password history. After setting this field, the user won&#x27;t be able to enter a new password that is the same as any password in the history. A value of 0 means there is no restriction.
@@ -1159,7 +1165,7 @@
   &quot;usbMassStorageEnabled&quot;: True or False, # Whether USB storage is enabled. Deprecated.
   &quot;version&quot;: &quot;A String&quot;, # The version of the policy. This is a read-only field. The version is incremented each time the policy is updated.
   &quot;vpnConfigDisabled&quot;: True or False, # Whether configuring VPN is disabled.
-  &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.
+  &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.Note: If a network connection can&#x27;t be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled).
   &quot;wifiConfigsLockdownEnabled&quot;: True or False, # DEPRECATED - Use wifi_config_disabled.
 }
 
@@ -1180,6 +1186,8 @@
   &quot;adjustVolumeDisabled&quot;: True or False, # Whether adjusting the master volume is disabled. Also mutes the device.
   &quot;advancedSecurityOverrides&quot;: { # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values. # Security policies set to the most secure values by default. To maintain the security posture of a device, we don&#x27;t recommend overriding any of the default values.
     &quot;commonCriteriaMode&quot;: &quot;A String&quot;, # Controls Common Criteria Mode—security standards defined in the Common Criteria for Information Technology Security Evaluation (https://www.commoncriteriaportal.org/) (CC). Enabling Common Criteria Mode increases certain security components on a device, including AES-GCM encryption of Bluetooth Long Term Keys, and Wi-Fi configuration stores.Warning: Common Criteria Mode enforces a strict security model typically only required for IT products used in national security systems and other highly sensitive organizations. Standard device use may be affected. Only enabled if required.
+    &quot;developerSettings&quot;: &quot;A String&quot;, # Controls access to developer settings: developer options and safe boot. Replaces safeBootDisabled (deprecated) and debuggingFeaturesAllowed (deprecated).
+    &quot;googlePlayProtectVerifyApps&quot;: &quot;A String&quot;, # Whether Google Play Protect verification (https://support.google.com/accounts/answer/2812853) is enforced. Replaces ensureVerifyAppsEnabled (deprecated).
     &quot;untrustedAppsPolicy&quot;: &quot;A String&quot;, # The policy for untrusted apps (apps from unknown sources) enforced on the device. Replaces install_unknown_sources_allowed (deprecated).
   },
   &quot;alwaysOnVpnPackage&quot;: { # Configuration for an always-on VPN connection. # Configuration for an always-on VPN connection. Use with vpn_config_disabled to prevent modification of this setting.
@@ -1231,13 +1239,13 @@
   &quot;bluetoothDisabled&quot;: True or False, # Whether bluetooth is disabled. Prefer this setting over bluetooth_config_disabled because bluetooth_config_disabled can be bypassed by the user.
   &quot;cameraDisabled&quot;: True or False, # Whether all cameras on the device are disabled.
   &quot;cellBroadcastsConfigDisabled&quot;: True or False, # Whether configuring cell broadcast is disabled.
-  &quot;choosePrivateKeyRules&quot;: [ # Rules for automatically choosing a private key and certificate to authenticate the device to a server. The rules are ordered by increasing precedence, so if an outgoing request matches more than one rule, the last rule defines which private key to use.
-    { # A rule for automatically choosing a private key and certificate to authenticate the device to a server.
-      &quot;packageNames&quot;: [ # The package names for which outgoing requests are subject to this rule. If no package names are specified, then the rule applies to all packages. For each package name listed, the rule applies to that package and all other packages that shared the same Android UID. The SHA256 hash of the signing key signatures of each package_name will be verified against those provided by Play
+  &quot;choosePrivateKeyRules&quot;: [ # Rules for determining apps&#x27; access to private keys. See ChoosePrivateKeyRule for details.
+    { # Controls apps&#x27; access to private keys. The rule determines which private key, if any, Android Device Policy grants to the specified app. Access is granted either when the app calls KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) (or any overloads) to request a private key alias for a given URL, or for rules that are not URL-specific (that is, if urlPattern is not set, or set to the empty string or .*) on Android 11 and above, directly so that the app can call KeyChain.getPrivateKey (https://developer.android.com/reference/android/security/KeyChain#getPrivateKey%28android.content.Context,%20java.lang.String%29), without first having to call KeyChain.choosePrivateKeyAlias.When an app calls KeyChain.choosePrivateKeyAlias if more than one choosePrivateKeyRules matches, the last matching rule defines which key alias to return.
+      &quot;packageNames&quot;: [ # The package names to which this rule applies. The hash of the signing certificate for each app is verified against the hash provided by Play. If no package names are specified, then the alias is provided to all apps that call KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) or any overloads (but not without calling KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any app with the same Android UID as a package specified here will have access when they call KeyChain.choosePrivateKeyAlias.
         &quot;A String&quot;,
       ],
       &quot;privateKeyAlias&quot;: &quot;A String&quot;, # The alias of the private key to be used.
-      &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the outgoing request. The pattern may contain asterisk (*) wildcards. Any URL is matched if unspecified.
+      &quot;urlPattern&quot;: &quot;A String&quot;, # The URL pattern to match against the URL of the request. If not set or empty, it matches all URLs. This uses the regular expression syntax of java.util.regex.Pattern.
     },
   ],
   &quot;complianceRules&quot;: [ # Rules declaring which mitigating actions to take when a device is not compliant with its policy. When the conditions for multiple rules are satisfied, all of the mitigating actions for the rules are taken. There is a maximum limit of 100 rules. Use policy enforcement rules instead.
@@ -1301,7 +1309,7 @@
   &quot;modifyAccountsDisabled&quot;: True or False, # Whether adding or removing accounts is disabled.
   &quot;mountPhysicalMediaDisabled&quot;: True or False, # Whether the user mounting physical external media is disabled.
   &quot;name&quot;: &quot;A String&quot;, # The name of the policy in the form enterprises/{enterpriseId}/policies/{policyId}.
-  &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.
+  &quot;networkEscapeHatchEnabled&quot;: True or False, # Whether the network escape hatch is enabled. If a network connection can&#x27;t be made at boot time, the escape hatch prompts the user to temporarily connect to a network in order to refresh the device policy. After applying policy, the temporary network will be forgotten and the device will continue booting. This prevents being unable to connect to a network if there is no suitable network in the last policy and the device boots into an app in lock task mode, or the user is otherwise unable to reach device settings.Note: Setting wifiConfigDisabled to true will override this setting under specific circumstances. Please see wifiConfigDisabled for further details.
   &quot;networkResetDisabled&quot;: True or False, # Whether resetting network settings is disabled.
   &quot;oncCertificateProviders&quot;: [ # This feature is not generally available.
     { # This feature is not generally available.
@@ -1339,7 +1347,7 @@
       &quot;requirePasswordUnlock&quot;: &quot;A String&quot;, # The length of time after a device or work profile is unlocked using a strong form of authentication (password, PIN, pattern) that it can be unlocked using any other authentication method (e.g. fingerprint, trust agents, face). After the specified time period elapses, only strong forms of authentication can be used to unlock the device or work profile.
     },
   ],
-  &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.
+  &quot;passwordRequirements&quot;: { # Requirements for the password used to unlock a device. # Password requirements. The field password_requirements.require_password_unlock must not be set. DEPRECATED - Use password_policies.Note:Complexity-based values of PasswordQuality, that is, COMPLEXITY_LOW, COMPLEXITY_MEDIUM, and COMPLEXITY_HIGH, cannot be used here.
     &quot;maximumFailedPasswordsForWipe&quot;: 42, # Number of incorrect device-unlock passwords that can be entered before a device is wiped. A value of 0 means there is no restriction.
     &quot;passwordExpirationTimeout&quot;: &quot;A String&quot;, # Password expiration timeout.
     &quot;passwordHistoryLength&quot;: 42, # The length of the password history. After setting this field, the user won&#x27;t be able to enter a new password that is the same as any password in the history. A value of 0 means there is no restriction.
@@ -1497,7 +1505,7 @@
   &quot;usbMassStorageEnabled&quot;: True or False, # Whether USB storage is enabled. Deprecated.
   &quot;version&quot;: &quot;A String&quot;, # The version of the policy. This is a read-only field. The version is incremented each time the policy is updated.
   &quot;vpnConfigDisabled&quot;: True or False, # Whether configuring VPN is disabled.
-  &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.
+  &quot;wifiConfigDisabled&quot;: True or False, # Whether configuring Wi-Fi access points is disabled.Note: If a network connection can&#x27;t be made at boot time and configuring Wi-Fi is disabled then network escape hatch will be shown in order to refresh the device policy (see networkEscapeHatchEnabled).
   &quot;wifiConfigsLockdownEnabled&quot;: True or False, # DEPRECATED - Use wifi_config_disabled.
 }</pre>
 </div>
diff --git a/docs/dyn/apigateway_v1.projects.locations.html b/docs/dyn/apigateway_v1.projects.locations.html
index 594d6d4..070ead3 100644
--- a/docs/dyn/apigateway_v1.projects.locations.html
+++ b/docs/dyn/apigateway_v1.projects.locations.html
@@ -141,7 +141,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/apigateway_v1beta.projects.locations.html b/docs/dyn/apigateway_v1beta.projects.locations.html
index de0d479..bedb284 100644
--- a/docs/dyn/apigateway_v1beta.projects.locations.html
+++ b/docs/dyn/apigateway_v1beta.projects.locations.html
@@ -141,7 +141,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/apigee_v1.organizations.apiproducts.html b/docs/dyn/apigee_v1.organizations.apiproducts.html
index c0675c6..cd8e3ee 100644
--- a/docs/dyn/apigee_v1.organizations.apiproducts.html
+++ b/docs/dyn/apigee_v1.organizations.apiproducts.html
@@ -80,6 +80,11 @@
 <p class="firstline">Returns the attributes Resource.</p>
 
 <p class="toc_element">
+  <code><a href="apigee_v1.organizations.apiproducts.rateplans.html">rateplans()</a></code>
+</p>
+<p class="firstline">Returns the rateplans Resource.</p>
+
+<p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
diff --git a/docs/dyn/apigee_v1.organizations.apiproducts.rateplans.html b/docs/dyn/apigee_v1.organizations.apiproducts.rateplans.html
new file mode 100644
index 0000000..e6a737c
--- /dev/null
+++ b/docs/dyn/apigee_v1.organizations.apiproducts.rateplans.html
@@ -0,0 +1,518 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="apigee_v1.html">Apigee API</a> . <a href="apigee_v1.organizations.html">organizations</a> . <a href="apigee_v1.organizations.apiproducts.html">apiproducts</a> . <a href="apigee_v1.organizations.apiproducts.rateplans.html">rateplans</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Create a rate plan that is associated with an API product in an organization. Using rate plans, API product owners can monetize their API products by configuring one or more of the following: - Billing frequency - Initial setup fees for using an API product - Payment funding model (postpaid only) - Fixed recurring or consumption-based charges for using an API product - Revenue sharing with developer partners An API product can have multiple rate plans associated with it but *only one* rate plan can be active at any point of time. **Note: From the developer's perspective, they purchase API products not rate plans.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a rate plan.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a rate plan.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, count=None, expand=None, orderBy=None, startKey=None, state=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all the rate plans for an API product.</p>
+<p class="toc_element">
+  <code><a href="#update">update(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing rate plan.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Create a rate plan that is associated with an API product in an organization. Using rate plans, API product owners can monetize their API products by configuring one or more of the following: - Billing frequency - Initial setup fees for using an API product - Payment funding model (postpaid only) - Fixed recurring or consumption-based charges for using an API product - Revenue sharing with developer partners An API product can have multiple rate plans associated with it but *only one* rate plan can be active at any point of time. **Note: From the developer&#x27;s perspective, they purchase API products not rate plans.
+
+Args:
+  parent: string, Required. Name of the API product that is associated with the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Rate plan details.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+  &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+  &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+    { # API call volume range and the fees charged when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+  &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+  &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+  &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+  &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+  &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+  &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+  &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+    { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+  &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+  &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Rate plan details.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+  &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+  &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+    { # API call volume range and the fees charged when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+  &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+  &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+  &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+  &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+  &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+  &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+  &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+    { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+  &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+  &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a rate plan.
+
+Args:
+  name: string, Required. ID of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Rate plan details.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+  &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+  &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+    { # API call volume range and the fees charged when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+  &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+  &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+  &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+  &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+  &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+  &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+  &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+    { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+  &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+  &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a rate plan.
+
+Args:
+  name: string, Required. Name of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Rate plan details.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+  &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+  &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+    { # API call volume range and the fees charged when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+  &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+  &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+  &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+  &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+  &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+  &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+  &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+    { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+  &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+  &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, count=None, expand=None, orderBy=None, startKey=None, state=None, x__xgafv=None)</code>
+  <pre>Lists all the rate plans for an API product.
+
+Args:
+  parent: string, Required. Name of the API product. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}` Use `organizations/{org}/apiproducts/-` to return rate plans for all API products within the organization. (required)
+  count: integer, Number of rate plans to return in the API call. Use with the `startKey` parameter to provide more targeted filtering. The maximum limit is 1000. Defaults to 100.
+  expand: boolean, Flag that specifies whether to expand the results. Set to `true` to get expanded details about each API. Defaults to `false`.
+  orderBy: string, Name of the attribute used for sorting. Valid values include: * `name`: Name of the rate plan. * `state`: State of the rate plan (`DRAFT`, `PUBLISHED`). * `startTime`: Time when the rate plan becomes active. * `endTime`: Time when the rate plan expires. **Note**: Not supported by Apigee at this time.
+  startKey: string, Name of the rate plan from which to start displaying the list of rate plans. If omitted, the list starts from the first item. For example, to view the rate plans from 51-150, set the value of `startKey` to the name of the 51st rate plan and set the value of `count` to 100.
+  state: string, State of the rate plans (`DRAFT`, `PUBLISHED`) that you want to display.
+    Allowed values
+      STATE_UNSPECIFIED - State of the rate plan is not specified.
+      DRAFT - Rate plan is in draft mode and only visible to API providers.
+      PUBLISHED - Rate plan is published and will become visible to developers for the configured duration (between `startTime` and `endTime`).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for ListRatePlans.
+  &quot;nextStartKey&quot;: &quot;A String&quot;, # Value that can be sent as `startKey` to retrieve the next page of content. If this field is omitted, there are no subsequent pages.
+  &quot;ratePlans&quot;: [ # List of rate plans in an organization.
+    { # Rate plan details.
+      &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+      &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+      &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+        { # API call volume range and the fees charged when the total number of API calls is within the range.
+          &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+          &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+          &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+        },
+      ],
+      &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+      &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+      &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+      &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+      &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+      &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+      &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+      &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+      &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+      &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+        { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+          &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+          &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+          &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+        },
+      ],
+      &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+      &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+      &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="update">update(name, body=None, x__xgafv=None)</code>
+  <pre>Updates an existing rate plan.
+
+Args:
+  name: string, Required. Name of the rate plan. Use the following structure in your request: `organizations/{org}/apiproducts/{apiproduct}/rateplans/{rateplan}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Rate plan details.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+  &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+  &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+    { # API call volume range and the fees charged when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+  &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+  &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+  &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+  &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+  &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+  &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+  &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+    { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+  &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+  &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Rate plan details.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product that the rate plan is associated with.
+  &quot;billingPeriod&quot;: &quot;A String&quot;, # Frequency at which the customer will be billed.
+  &quot;consumptionPricingRates&quot;: [ # API call volume ranges and the fees charged when the total number of API calls is within a given range. The method used to calculate the final fee depends on the selected pricing model. For example, if the pricing model is `STAIRSTEP` and the ranges are defined as follows: ``` { &quot;start&quot;: 1, &quot;end&quot;: 100, &quot;fee&quot;: 75 }, { &quot;start&quot;: 101, &quot;end&quot;: 200, &quot;fee&quot;: 100 }, } ``` Then the following fees would be charged based on the total number of API calls (assuming the currency selected is `USD`): * 1 call costs $75 * 50 calls cost $75 * 150 calls cost $100 The number of API calls cannot exceed 200.
+    { # API call volume range and the fees charged when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;fee&quot;: { # Represents an amount of money with its currency type. # Fee to charge when total number of API calls falls within this range.
+        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+      },
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;consumptionPricingType&quot;: &quot;A String&quot;, # Pricing model used for consumption-based charges.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time that the rate plan was created in milliseconds since epoch.
+  &quot;currencyCode&quot;: &quot;A String&quot;, # Currency to be used for billing. Consists of a three-letter code as defined by the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
+  &quot;description&quot;: &quot;A String&quot;, # Description of the rate plan.
+  &quot;displayName&quot;: &quot;A String&quot;, # Display name of the rate plan.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the rate plan will expire in milliseconds since epoch. Set to 0 or `null` to indicate that the rate plan should never expire.
+  &quot;fixedFeeFrequency&quot;: 42, # Frequency at which the fixed fee is charged.
+  &quot;fixedRecurringFee&quot;: { # Represents an amount of money with its currency type. # Fixed amount that is charged at a defined interval and billed in advance of use of the API product. The fee will be prorated for the first billing period.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time the rate plan was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the rate plan.
+  &quot;paymentFundingModel&quot;: &quot;A String&quot;, # Flag that specifies the billing account type, prepaid or postpaid.
+  &quot;revenueShareRates&quot;: [ # Details of the revenue sharing model.
+    { # API call volume range and the percentage of revenue to share with the developer when the total number of API calls is within the range.
+      &quot;end&quot;: &quot;A String&quot;, # Ending value of the range. Set to 0 or `null` for the last range of values.
+      &quot;sharePercentage&quot;: 3.14, # Percentage of the revenue to be shared with the developer. For example, to share 21 percent of the total revenue with the developer, set this value to 21. Specify a decimal number with a maximum of two digits following the decimal point.
+      &quot;start&quot;: &quot;A String&quot;, # Starting value of the range. Set to 0 or `null` for the initial range of values.
+    },
+  ],
+  &quot;revenueShareType&quot;: &quot;A String&quot;, # Method used to calculate the revenue that is shared with developers.
+  &quot;setupFee&quot;: { # Represents an amount of money with its currency type. # Initial, one-time fee paid when purchasing the API product.
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+  },
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the rate plan becomes active in milliseconds since epoch.
+  &quot;state&quot;: &quot;A String&quot;, # Current state of the rate plan (draft or published).
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/apigee_v1.organizations.developers.html b/docs/dyn/apigee_v1.organizations.developers.html
index dff93be..87910f2 100644
--- a/docs/dyn/apigee_v1.organizations.developers.html
+++ b/docs/dyn/apigee_v1.organizations.developers.html
@@ -85,6 +85,11 @@
 <p class="firstline">Returns the attributes Resource.</p>
 
 <p class="toc_element">
+  <code><a href="apigee_v1.organizations.developers.subscriptions.html">subscriptions()</a></code>
+</p>
+<p class="firstline">Returns the subscriptions Resource.</p>
+
+<p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
diff --git a/docs/dyn/apigee_v1.organizations.developers.subscriptions.html b/docs/dyn/apigee_v1.organizations.developers.subscriptions.html
new file mode 100644
index 0000000..4fe7549
--- /dev/null
+++ b/docs/dyn/apigee_v1.organizations.developers.subscriptions.html
@@ -0,0 +1,219 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="apigee_v1.html">Apigee API</a> . <a href="apigee_v1.organizations.html">organizations</a> . <a href="apigee_v1.organizations.developers.html">developers</a> . <a href="apigee_v1.organizations.developers.subscriptions.html">subscriptions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a subscription to an API product. </p>
+<p class="toc_element">
+  <code><a href="#expire">expire(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Expires an API product subscription immediately.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details for an API product subscription.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, count=None, startKey=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all API product subscriptions for a developer.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a subscription to an API product. 
+
+Args:
+  parent: string, Required. Email address of the developer that is purchasing a subscription to the API product. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Structure of a DeveloperSubscription.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Structure of a DeveloperSubscription.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="expire">expire(name, body=None, x__xgafv=None)</code>
+  <pre>Expires an API product subscription immediately.
+
+Args:
+  name: string, Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for ExpireDeveloperSubscription.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Structure of a DeveloperSubscription.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details for an API product subscription.
+
+Args:
+  name: string, Required. Name of the API product subscription. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/subscriptions/{subscription}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Structure of a DeveloperSubscription.
+  &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
+  &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
+  &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
+  &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
+  &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, count=None, startKey=None, x__xgafv=None)</code>
+  <pre>Lists all API product subscriptions for a developer.
+
+Args:
+  parent: string, Required. Email address of the developer. Use the following structure in your request: `organizations/{org}/developers/{developer_email}` (required)
+  count: integer, Number of API product subscriptions to return in the API call. Use with `startKey` to provide more targeted filtering. Defaults to 100. The maximum limit is 1000.
+  startKey: string, Name of the API product subscription from which to start displaying the list of subscriptions. If omitted, the list starts from the first item. For example, to view the API product subscriptions from 51-150, set the value of `startKey` to the name of the 51st subscription and set the value of `count` to 100.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for ListDeveloperSubscriptions.
+  &quot;developerSubscriptions&quot;: [ # List of all subscriptions.
+    { # Structure of a DeveloperSubscription.
+      &quot;apiproduct&quot;: &quot;A String&quot;, # Name of the API product for which the developer is purchasing a subscription.
+      &quot;createdAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was created in milliseconds since epoch.
+      &quot;endTime&quot;: &quot;A String&quot;, # Time when the API product subscription ends in milliseconds since epoch.
+      &quot;lastModifiedAt&quot;: &quot;A String&quot;, # Output only. Time when the API product subscription was last modified in milliseconds since epoch.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the API product subscription.
+      &quot;startTime&quot;: &quot;A String&quot;, # Time when the API product subscription starts in milliseconds since epoch.
+    },
+  ],
+  &quot;nextStartKey&quot;: &quot;A String&quot;, # Value that can be sent as `startKey` to retrieve the next page of content. If this field is omitted, there are no subsequent pages.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/apigee_v1.organizations.html b/docs/dyn/apigee_v1.organizations.html
index 9089757..86a6740 100644
--- a/docs/dyn/apigee_v1.organizations.html
+++ b/docs/dyn/apigee_v1.organizations.html
@@ -186,6 +186,9 @@
   <code><a href="#list">list(parent, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the Apigee organizations and associated GCP projects that you have permission to access. See [Understanding organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure).</p>
 <p class="toc_element">
+  <code><a href="#setAddons">setAddons(org, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced.</p>
+<p class="toc_element">
   <code><a href="#setSyncAuthorization">setSyncAuthorization(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the permissions required to allow the Synchronizer to download environment data from the control plane. You must call this API to enable proper functioning of hybrid. Pass the ETag when calling `setSyncAuthorization` to ensure that you are updating the correct version. To get an ETag, call [getSyncAuthorization](getSyncAuthorization). If you don't pass the ETag in the call to `setSyncAuthorization`, then the existing authorization is overwritten indiscriminately. For more information, see [Configure the Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). **Note**: Available to Apigee hybrid only.</p>
 <p class="toc_element">
@@ -206,6 +209,17 @@
     The object takes the form of:
 
 {
+  &quot;addonsConfig&quot;: { # Add-on configurations for the Apigee organization. # Addon configurations of the Apigee organization.
+    &quot;advancedApiOpsConfig&quot;: { # Configuration for the Advanced API Ops add-on. # Configuration for the Advanced API Ops add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Advanced API Ops add-on is enabled.
+    },
+    &quot;integrationConfig&quot;: { # Configuration for the Integration add-on. # Configuration for the Integration add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Integration add-on is enabled.
+    },
+    &quot;monetizationConfig&quot;: { # Configuration for the Monetization add-on. # Configuration for the Monetization add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Monetization add-on is enabled.
+    },
+  },
   &quot;analyticsRegion&quot;: &quot;A String&quot;, # Required. Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).
   &quot;attributes&quot;: [ # Not used by Apigee.
     &quot;A String&quot;,
@@ -319,6 +333,17 @@
   An object of the form:
 
     {
+  &quot;addonsConfig&quot;: { # Add-on configurations for the Apigee organization. # Addon configurations of the Apigee organization.
+    &quot;advancedApiOpsConfig&quot;: { # Configuration for the Advanced API Ops add-on. # Configuration for the Advanced API Ops add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Advanced API Ops add-on is enabled.
+    },
+    &quot;integrationConfig&quot;: { # Configuration for the Integration add-on. # Configuration for the Integration add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Integration add-on is enabled.
+    },
+    &quot;monetizationConfig&quot;: { # Configuration for the Monetization add-on. # Configuration for the Monetization add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Monetization add-on is enabled.
+    },
+  },
   &quot;analyticsRegion&quot;: &quot;A String&quot;, # Required. Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).
   &quot;attributes&quot;: [ # Not used by Apigee.
     &quot;A String&quot;,
@@ -454,6 +479,58 @@
 </div>
 
 <div class="method">
+    <code class="details" id="setAddons">setAddons(org, body=None, x__xgafv=None)</code>
+  <pre>Configures the add-ons for the Apigee organization. The existing add-on configuration will be fully replaced.
+
+Args:
+  org: string, Required. Name of the organization. Use the following structure in your request: `organizations/{org}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for SetAddons.
+  &quot;addonsConfig&quot;: { # Add-on configurations for the Apigee organization. # Required. Add-on configurations.
+    &quot;advancedApiOpsConfig&quot;: { # Configuration for the Advanced API Ops add-on. # Configuration for the Advanced API Ops add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Advanced API Ops add-on is enabled.
+    },
+    &quot;integrationConfig&quot;: { # Configuration for the Integration add-on. # Configuration for the Integration add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Integration add-on is enabled.
+    },
+    &quot;monetizationConfig&quot;: { # Configuration for the Monetization add-on. # Configuration for the Monetization add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Monetization add-on is enabled.
+    },
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setSyncAuthorization">setSyncAuthorization(name, body=None, x__xgafv=None)</code>
   <pre>Sets the permissions required to allow the Synchronizer to download environment data from the control plane. You must call this API to enable proper functioning of hybrid. Pass the ETag when calling `setSyncAuthorization` to ensure that you are updating the correct version. To get an ETag, call [getSyncAuthorization](getSyncAuthorization). If you don&#x27;t pass the ETag in the call to `setSyncAuthorization`, then the existing authorization is overwritten indiscriminately. For more information, see [Configure the Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). **Note**: Available to Apigee hybrid only.
 
@@ -495,6 +572,17 @@
     The object takes the form of:
 
 {
+  &quot;addonsConfig&quot;: { # Add-on configurations for the Apigee organization. # Addon configurations of the Apigee organization.
+    &quot;advancedApiOpsConfig&quot;: { # Configuration for the Advanced API Ops add-on. # Configuration for the Advanced API Ops add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Advanced API Ops add-on is enabled.
+    },
+    &quot;integrationConfig&quot;: { # Configuration for the Integration add-on. # Configuration for the Integration add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Integration add-on is enabled.
+    },
+    &quot;monetizationConfig&quot;: { # Configuration for the Monetization add-on. # Configuration for the Monetization add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Monetization add-on is enabled.
+    },
+  },
   &quot;analyticsRegion&quot;: &quot;A String&quot;, # Required. Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).
   &quot;attributes&quot;: [ # Not used by Apigee.
     &quot;A String&quot;,
@@ -537,6 +625,17 @@
   An object of the form:
 
     {
+  &quot;addonsConfig&quot;: { # Add-on configurations for the Apigee organization. # Addon configurations of the Apigee organization.
+    &quot;advancedApiOpsConfig&quot;: { # Configuration for the Advanced API Ops add-on. # Configuration for the Advanced API Ops add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Advanced API Ops add-on is enabled.
+    },
+    &quot;integrationConfig&quot;: { # Configuration for the Integration add-on. # Configuration for the Integration add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Integration add-on is enabled.
+    },
+    &quot;monetizationConfig&quot;: { # Configuration for the Monetization add-on. # Configuration for the Monetization add-on.
+      &quot;enabled&quot;: True or False, # Flag that specifies whether the Monetization add-on is enabled.
+    },
+  },
   &quot;analyticsRegion&quot;: &quot;A String&quot;, # Required. Primary GCP region for analytics data storage. For valid values, see [Create an Apigee organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org).
   &quot;attributes&quot;: [ # Not used by Apigee.
     &quot;A String&quot;,
diff --git a/docs/dyn/apigee_v1.organizations.instances.html b/docs/dyn/apigee_v1.organizations.instances.html
index 15186ac..3e062ba 100644
--- a/docs/dyn/apigee_v1.organizations.instances.html
+++ b/docs/dyn/apigee_v1.organizations.instances.html
@@ -93,7 +93,7 @@
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
-  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body=None, environments=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates an Apigee runtime instance. The instance is accessible from the authorized network configured on the organization. **Note:** Not supported for Apigee hybrid.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
@@ -117,7 +117,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body=None, environments=None, x__xgafv=None)</code>
   <pre>Creates an Apigee runtime instance. The instance is accessible from the authorized network configured on the organization. **Note:** Not supported for Apigee hybrid.
 
 Args:
@@ -139,6 +139,7 @@
   &quot;state&quot;: &quot;A String&quot;, # Output only. State of the instance. Values other than `ACTIVE` means the resource is not ready to use.
 }
 
+  environments: string, Optional. List of environments that will be attached to the instance during creation. (repeated)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/appengine_v1.apps.locations.html b/docs/dyn/appengine_v1.apps.locations.html
index 0644fb1..34c9d90 100644
--- a/docs/dyn/appengine_v1.apps.locations.html
+++ b/docs/dyn/appengine_v1.apps.locations.html
@@ -127,7 +127,7 @@
 Args:
   appsId: string, Part of `name`. The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in AIP-160 (https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/appengine_v1alpha.apps.locations.html b/docs/dyn/appengine_v1alpha.apps.locations.html
index c04138b..096f980 100644
--- a/docs/dyn/appengine_v1alpha.apps.locations.html
+++ b/docs/dyn/appengine_v1alpha.apps.locations.html
@@ -127,7 +127,7 @@
 Args:
   appsId: string, Part of `name`. The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in AIP-160 (https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/appengine_v1beta.apps.locations.html b/docs/dyn/appengine_v1beta.apps.locations.html
index df12ef9..a26273c 100644
--- a/docs/dyn/appengine_v1beta.apps.locations.html
+++ b/docs/dyn/appengine_v1beta.apps.locations.html
@@ -127,7 +127,7 @@
 Args:
   appsId: string, Part of `name`. The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in AIP-160 (https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/area120tables_v1alpha1.tables.html b/docs/dyn/area120tables_v1alpha1.tables.html
index 9b4047c..ec2b232 100644
--- a/docs/dyn/area120tables_v1alpha1.tables.html
+++ b/docs/dyn/area120tables_v1alpha1.tables.html
@@ -111,7 +111,7 @@
 Returns:
   An object of the form:
 
-    { # A single table.
+    { # A single table. NextId: 7
   &quot;columns&quot;: [ # List of columns in this table. Order of columns matches the display order.
     { # Details on a column in the table.
       &quot;dataType&quot;: &quot;A String&quot;, # Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.
@@ -135,6 +135,12 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Time when the table was created.
   &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the table.
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
+  &quot;savedViews&quot;: [ # Saved views for this table.
+    { # A saved view of a table. NextId: 3
+      &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the saved view.
+      &quot;name&quot;: &quot;A String&quot;, # Display name of the saved view.
+    },
+  ],
   &quot;updateTime&quot;: &quot;A String&quot;, # Time when the table was last updated excluding updates to individual rows
 }</pre>
 </div>
@@ -157,7 +163,7 @@
     { # Response message for TablesService.ListTables.
   &quot;nextPageToken&quot;: &quot;A String&quot;, # A token, which can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.
   &quot;tables&quot;: [ # The list of tables.
-    { # A single table.
+    { # A single table. NextId: 7
       &quot;columns&quot;: [ # List of columns in this table. Order of columns matches the display order.
         { # Details on a column in the table.
           &quot;dataType&quot;: &quot;A String&quot;, # Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.
@@ -181,6 +187,12 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Time when the table was created.
       &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the table.
       &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
+      &quot;savedViews&quot;: [ # Saved views for this table.
+        { # A saved view of a table. NextId: 3
+          &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the saved view.
+          &quot;name&quot;: &quot;A String&quot;, # Display name of the saved view.
+        },
+      ],
       &quot;updateTime&quot;: &quot;A String&quot;, # Time when the table was last updated excluding updates to individual rows
     },
   ],
diff --git a/docs/dyn/area120tables_v1alpha1.workspaces.html b/docs/dyn/area120tables_v1alpha1.workspaces.html
index 5a5045d..2b45487 100644
--- a/docs/dyn/area120tables_v1alpha1.workspaces.html
+++ b/docs/dyn/area120tables_v1alpha1.workspaces.html
@@ -111,7 +111,7 @@
   &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the workspace.
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the workspace. Workspace names have the form `workspaces/{workspace}`.
   &quot;tables&quot;: [ # The list of tables in the workspace.
-    { # A single table.
+    { # A single table. NextId: 7
       &quot;columns&quot;: [ # List of columns in this table. Order of columns matches the display order.
         { # Details on a column in the table.
           &quot;dataType&quot;: &quot;A String&quot;, # Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.
@@ -135,6 +135,12 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Time when the table was created.
       &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the table.
       &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
+      &quot;savedViews&quot;: [ # Saved views for this table.
+        { # A saved view of a table. NextId: 3
+          &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the saved view.
+          &quot;name&quot;: &quot;A String&quot;, # Display name of the saved view.
+        },
+      ],
       &quot;updateTime&quot;: &quot;A String&quot;, # Time when the table was last updated excluding updates to individual rows
     },
   ],
@@ -165,7 +171,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the workspace.
       &quot;name&quot;: &quot;A String&quot;, # The resource name of the workspace. Workspace names have the form `workspaces/{workspace}`.
       &quot;tables&quot;: [ # The list of tables in the workspace.
-        { # A single table.
+        { # A single table. NextId: 7
           &quot;columns&quot;: [ # List of columns in this table. Order of columns matches the display order.
             { # Details on a column in the table.
               &quot;dataType&quot;: &quot;A String&quot;, # Data type of the column Supported types are auto_id, boolean, boolean_list, creator, create_timestamp, date, dropdown, location, integer, integer_list, number, number_list, person, person_list, tags, check_list, text, text_list, update_timestamp, updater, relationship, file_attachment_list. These types directly map to the column types supported on Tables website.
@@ -189,6 +195,12 @@
           &quot;createTime&quot;: &quot;A String&quot;, # Time when the table was created.
           &quot;displayName&quot;: &quot;A String&quot;, # The human readable title of the table.
           &quot;name&quot;: &quot;A String&quot;, # The resource name of the table. Table names have the form `tables/{table}`.
+          &quot;savedViews&quot;: [ # Saved views for this table.
+            { # A saved view of a table. NextId: 3
+              &quot;id&quot;: &quot;A String&quot;, # Internal id associated with the saved view.
+              &quot;name&quot;: &quot;A String&quot;, # Display name of the saved view.
+            },
+          ],
           &quot;updateTime&quot;: &quot;A String&quot;, # Time when the table was last updated excluding updates to individual rows
         },
       ],
diff --git a/docs/dyn/assuredworkloads_v1.organizations.locations.workloads.html b/docs/dyn/assuredworkloads_v1.organizations.locations.workloads.html
index dc08b02..cb391c7 100644
--- a/docs/dyn/assuredworkloads_v1.organizations.locations.workloads.html
+++ b/docs/dyn/assuredworkloads_v1.organizations.locations.workloads.html
@@ -125,6 +125,12 @@
   },
   &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.
   &quot;provisionedResourcesParent&quot;: &quot;A String&quot;, # Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id} organizations/{organization_id}
+  &quot;resourceSettings&quot;: [ # Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.
+    { # Represent the custom settings for the resources to be created.
+      &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail.
+      &quot;resourceType&quot;: &quot;A String&quot;, # Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)
+    },
+  ],
   &quot;resources&quot;: [ # Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.
     { # Represent the resources that are children of this Workload.
       &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_number.
@@ -211,6 +217,12 @@
   },
   &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.
   &quot;provisionedResourcesParent&quot;: &quot;A String&quot;, # Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id} organizations/{organization_id}
+  &quot;resourceSettings&quot;: [ # Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.
+    { # Represent the custom settings for the resources to be created.
+      &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail.
+      &quot;resourceType&quot;: &quot;A String&quot;, # Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)
+    },
+  ],
   &quot;resources&quot;: [ # Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.
     { # Represent the resources that are children of this Workload.
       &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_number.
@@ -255,6 +267,12 @@
       },
       &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.
       &quot;provisionedResourcesParent&quot;: &quot;A String&quot;, # Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id} organizations/{organization_id}
+      &quot;resourceSettings&quot;: [ # Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.
+        { # Represent the custom settings for the resources to be created.
+          &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail.
+          &quot;resourceType&quot;: &quot;A String&quot;, # Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)
+        },
+      ],
       &quot;resources&quot;: [ # Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.
         { # Represent the resources that are children of this Workload.
           &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_number.
@@ -304,6 +322,12 @@
   },
   &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.
   &quot;provisionedResourcesParent&quot;: &quot;A String&quot;, # Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id} organizations/{organization_id}
+  &quot;resourceSettings&quot;: [ # Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.
+    { # Represent the custom settings for the resources to be created.
+      &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail.
+      &quot;resourceType&quot;: &quot;A String&quot;, # Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)
+    },
+  ],
   &quot;resources&quot;: [ # Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.
     { # Represent the resources that are children of this Workload.
       &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_number.
@@ -336,6 +360,12 @@
   },
   &quot;name&quot;: &quot;A String&quot;, # Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.
   &quot;provisionedResourcesParent&quot;: &quot;A String&quot;, # Input only. The parent resource for the resources managed by this Assured Workload. May be either an organization or a folder. Must be the same or a child of the Workload parent. If not specified all resources are created under the Workload parent. Formats: folders/{folder_id} organizations/{organization_id}
+  &quot;resourceSettings&quot;: [ # Input only. Resource properties that are used to customize workload resources. These properties (such as custom project id) will be used to create workload resources if possible. This field is optional.
+    { # Represent the custom settings for the resources to be created.
+      &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail.
+      &quot;resourceType&quot;: &quot;A String&quot;, # Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)
+    },
+  ],
   &quot;resources&quot;: [ # Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.
     { # Represent the resources that are children of this Workload.
       &quot;resourceId&quot;: &quot;A String&quot;, # Resource identifier. For a project this represents project_number.
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index 39b2dd1..1f9e508 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -81,6 +81,9 @@
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
+  <code><a href="#delete">delete(projectId, jobId, location=None)</a></code></p>
+<p class="firstline">Requests that a job is deleted. This call will return when the job is deleted. This method is available in limited preview.</p>
+<p class="toc_element">
   <code><a href="#get">get(projectId, jobId, location=None)</a></code></p>
 <p class="firstline">Returns information about a specific job. Job information is available for a six month period after creation. Requires that you're the person who ran the job, or have the Is Owner project role.</p>
 <p class="toc_element">
@@ -247,7 +250,7 @@
               },
               &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
               &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-              &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+              &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
             },
           ],
         },
@@ -412,7 +415,7 @@
                   },
                   &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                   &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                  &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                  &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
                 },
               ],
             },
@@ -585,7 +588,7 @@
               },
               &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
               &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-              &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+              &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
             },
           ],
         },
@@ -695,6 +698,17 @@
 </div>
 
 <div class="method">
+    <code class="details" id="delete">delete(projectId, jobId, location=None)</code>
+  <pre>Requests that a job is deleted. This call will return when the job is deleted. This method is available in limited preview.
+
+Args:
+  projectId: string, Required. Project ID of the job to be deleted. (required)
+  jobId: string, Required. Job ID of the job to be deleted. If this is a parent job which has child jobs, all child jobs will be deleted as well. Deletion of child jobs directly is not allowed. (required)
+  location: string, The geographic location of the job. Required. See details at: https://cloud.google.com/bigquery/docs/locations#specifying_your_location.
+</pre>
+</div>
+
+<div class="method">
     <code class="details" id="get">get(projectId, jobId, location=None)</code>
   <pre>Returns information about a specific job. Job information is available for a six month period after creation. Requires that you&#x27;re the person who ran the job, or have the Is Owner project role.
 
@@ -838,7 +852,7 @@
             },
             &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
             &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
           },
         ],
       },
@@ -1003,7 +1017,7 @@
                 },
                 &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                 &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
               },
             ],
           },
@@ -1176,7 +1190,7 @@
             },
             &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
             &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
           },
         ],
       },
@@ -1345,7 +1359,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -1509,7 +1523,7 @@
             },
             &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
             &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
           },
         ],
       },
@@ -1674,7 +1688,7 @@
                 },
                 &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                 &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
               },
             ],
           },
@@ -1847,7 +1861,7 @@
             },
             &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
             &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
           },
         ],
       },
@@ -2086,7 +2100,7 @@
             },
             &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
             &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
           },
         ],
       },
@@ -2251,7 +2265,7 @@
                 },
                 &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                 &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
               },
             ],
           },
@@ -2424,7 +2438,7 @@
             },
             &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
             &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+            &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
           },
         ],
       },
@@ -2686,7 +2700,7 @@
                 },
                 &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                 &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
               },
             ],
           },
@@ -2851,7 +2865,7 @@
                     },
                     &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                     &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                    &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                    &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
                   },
                 ],
               },
@@ -3029,7 +3043,7 @@
                 },
                 &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
                 &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+                &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
               },
             ],
           },
@@ -3266,7 +3280,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
diff --git a/docs/dyn/bigquery_v2.models.html b/docs/dyn/bigquery_v2.models.html
index 3afc37d..6a2e1b3 100644
--- a/docs/dyn/bigquery_v2.models.html
+++ b/docs/dyn/bigquery_v2.models.html
@@ -201,6 +201,9 @@
                 &quot;variance&quot;: 3.14, # Variance.
               },
               &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
+              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
               &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                 &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                 &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -210,6 +213,9 @@
                 &quot;A String&quot;,
               ],
               &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                &quot;A String&quot;,
+              ],
             },
           ],
           &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
@@ -279,9 +285,6 @@
           &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
           &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
         },
-        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
-          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
-        },
         &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
           &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
             &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
@@ -354,6 +357,9 @@
                   &quot;variance&quot;: 3.14, # Variance.
                 },
                 &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
+                &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+                &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+                &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                 &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                   &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                   &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -363,6 +369,9 @@
                   &quot;A String&quot;,
                 ],
                 &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+                &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                  &quot;A String&quot;,
+                ],
               },
             ],
             &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
@@ -380,26 +389,21 @@
           &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
           &quot;index&quot;: 42, # Index of the iteration, 0 based.
           &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
-          &quot;principalComponentInfos&quot;: [ # The information of the principal components.
-            { # Principal component infos, used only for eigen decomposition based models, e.g., PCA. Ordered by explained_variance in the descending order.
-              &quot;cumulativeExplainedVarianceRatio&quot;: 3.14, # The explained_variance is pre-ordered in the descending order to compute the cumulative explained variance ratio.
-              &quot;explainedVariance&quot;: 3.14, # Explained variance by this principal component, which is simply the eigenvalue.
-              &quot;explainedVarianceRatio&quot;: 3.14, # Explained_variance over the total explained variance.
-              &quot;principalComponentId&quot;: &quot;A String&quot;, # Id of the principal component.
-            },
-          ],
           &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
         },
       ],
       &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
       &quot;trainingOptions&quot;: { # Options used in model training. # Options that were used for this training run, includes user specified and default options that were used.
+        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
         &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
         &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
         &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
+        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
         &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
         &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
         &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
         &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
+        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
         &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
         &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
         &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
@@ -442,6 +446,9 @@
         &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
         &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
         &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
+        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
+          &quot;A String&quot;,
+        ],
         &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
         &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
         &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
@@ -547,6 +554,9 @@
                     &quot;variance&quot;: 3.14, # Variance.
                   },
                   &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
+                  &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+                  &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+                  &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                   &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                     &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                     &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -556,6 +566,9 @@
                     &quot;A String&quot;,
                   ],
                   &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+                  &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                    &quot;A String&quot;,
+                  ],
                 },
               ],
               &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
@@ -625,9 +638,6 @@
               &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
               &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
             },
-            &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
-              &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
-            },
             &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
               &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
                 &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
@@ -700,6 +710,9 @@
                       &quot;variance&quot;: 3.14, # Variance.
                     },
                     &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
+                    &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+                    &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+                    &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                     &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                       &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                       &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -709,6 +722,9 @@
                       &quot;A String&quot;,
                     ],
                     &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+                    &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                      &quot;A String&quot;,
+                    ],
                   },
                 ],
                 &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
@@ -726,26 +742,21 @@
               &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
               &quot;index&quot;: 42, # Index of the iteration, 0 based.
               &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
-              &quot;principalComponentInfos&quot;: [ # The information of the principal components.
-                { # Principal component infos, used only for eigen decomposition based models, e.g., PCA. Ordered by explained_variance in the descending order.
-                  &quot;cumulativeExplainedVarianceRatio&quot;: 3.14, # The explained_variance is pre-ordered in the descending order to compute the cumulative explained variance ratio.
-                  &quot;explainedVariance&quot;: 3.14, # Explained variance by this principal component, which is simply the eigenvalue.
-                  &quot;explainedVarianceRatio&quot;: 3.14, # Explained_variance over the total explained variance.
-                  &quot;principalComponentId&quot;: &quot;A String&quot;, # Id of the principal component.
-                },
-              ],
               &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
             },
           ],
           &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
           &quot;trainingOptions&quot;: { # Options used in model training. # Options that were used for this training run, includes user specified and default options that were used.
+            &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
             &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
             &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
             &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
+            &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
             &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
             &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
             &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
             &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
+            &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
             &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
             &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
             &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
@@ -788,6 +799,9 @@
             &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
             &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
             &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
+            &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
+              &quot;A String&quot;,
+            ],
             &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
             &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
             &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
@@ -906,6 +920,9 @@
                 &quot;variance&quot;: 3.14, # Variance.
               },
               &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
+              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
               &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                 &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                 &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -915,6 +932,9 @@
                 &quot;A String&quot;,
               ],
               &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                &quot;A String&quot;,
+              ],
             },
           ],
           &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
@@ -984,9 +1004,6 @@
           &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
           &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
         },
-        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
-          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
-        },
         &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
           &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
             &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
@@ -1059,6 +1076,9 @@
                   &quot;variance&quot;: 3.14, # Variance.
                 },
                 &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
+                &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+                &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+                &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                 &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                   &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                   &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -1068,6 +1088,9 @@
                   &quot;A String&quot;,
                 ],
                 &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+                &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                  &quot;A String&quot;,
+                ],
               },
             ],
             &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
@@ -1085,26 +1108,21 @@
           &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
           &quot;index&quot;: 42, # Index of the iteration, 0 based.
           &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
-          &quot;principalComponentInfos&quot;: [ # The information of the principal components.
-            { # Principal component infos, used only for eigen decomposition based models, e.g., PCA. Ordered by explained_variance in the descending order.
-              &quot;cumulativeExplainedVarianceRatio&quot;: 3.14, # The explained_variance is pre-ordered in the descending order to compute the cumulative explained variance ratio.
-              &quot;explainedVariance&quot;: 3.14, # Explained variance by this principal component, which is simply the eigenvalue.
-              &quot;explainedVarianceRatio&quot;: 3.14, # Explained_variance over the total explained variance.
-              &quot;principalComponentId&quot;: &quot;A String&quot;, # Id of the principal component.
-            },
-          ],
           &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
         },
       ],
       &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
       &quot;trainingOptions&quot;: { # Options used in model training. # Options that were used for this training run, includes user specified and default options that were used.
+        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
         &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
         &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
         &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
+        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
         &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
         &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
         &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
         &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
+        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
         &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
         &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
         &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
@@ -1147,6 +1165,9 @@
         &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
         &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
         &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
+        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
+          &quot;A String&quot;,
+        ],
         &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
         &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
         &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
@@ -1240,6 +1261,9 @@
                 &quot;variance&quot;: 3.14, # Variance.
               },
               &quot;hasDrift&quot;: True or False, # Is arima model fitted with drift or not. It is always false when d is not 1.
+              &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+              &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+              &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
               &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                 &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                 &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -1249,6 +1273,9 @@
                 &quot;A String&quot;,
               ],
               &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+              &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                &quot;A String&quot;,
+              ],
             },
           ],
           &quot;hasDrift&quot;: [ # Whether Arima model fitted with drift or not. It is always false when d is not 1.
@@ -1318,9 +1345,6 @@
           &quot;daviesBouldinIndex&quot;: 3.14, # Davies-Bouldin index.
           &quot;meanSquaredDistance&quot;: 3.14, # Mean of squared distances between each sample to its cluster centroid.
         },
-        &quot;dimensionalityReductionMetrics&quot;: { # Model evaluation metrics for dimensionality reduction models. # Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA.
-          &quot;totalExplainedVarianceRatio&quot;: 3.14, # Total percentage of variance explained by the selected principal components.
-        },
         &quot;multiClassClassificationMetrics&quot;: { # Evaluation metrics for multi-class classification/classifier models. # Populated for multi-class classification/classifier models.
           &quot;aggregateClassificationMetrics&quot;: { # Aggregate metrics for classification/classifier models. For multi-class models, the metrics are either macro-averaged or micro-averaged. When macro-averaged, the metrics are calculated for each label and then an unweighted average is taken of those values. When micro-averaged, the metric is calculated globally by counting the total number of correctly predicted rows. # Aggregate classification metrics.
             &quot;accuracy&quot;: 3.14, # Accuracy is the fraction of predictions given the correct label. For multiclass this is a micro-averaged metric.
@@ -1393,6 +1417,9 @@
                   &quot;variance&quot;: 3.14, # Variance.
                 },
                 &quot;hasDrift&quot;: True or False, # Whether Arima model fitted with drift or not. It is always false when d is not 1.
+                &quot;hasHolidayEffect&quot;: True or False, # If true, holiday_effect is a part of time series decomposition result.
+                &quot;hasSpikesAndDips&quot;: True or False, # If true, spikes_and_dips is a part of time series decomposition result.
+                &quot;hasStepChanges&quot;: True or False, # If true, step_changes is a part of time series decomposition result.
                 &quot;nonSeasonalOrder&quot;: { # Arima order, can be used for both non-seasonal and seasonal parts. # Non-seasonal order.
                   &quot;d&quot;: &quot;A String&quot;, # Order of the differencing part.
                   &quot;p&quot;: &quot;A String&quot;, # Order of the autoregressive part.
@@ -1402,6 +1429,9 @@
                   &quot;A String&quot;,
                 ],
                 &quot;timeSeriesId&quot;: &quot;A String&quot;, # The time_series_id value for this time series. It will be one of the unique values from the time_series_id_column specified during ARIMA model training. Only present when time_series_id_column training option was used.
+                &quot;timeSeriesIds&quot;: [ # The tuple of time_series_ids identifying this time series. It will be one of the unique tuples of values present in the time_series_id_columns specified during ARIMA model training. Only present when time_series_id_columns training option was used and the order of values here are same as the order of time_series_id_columns.
+                  &quot;A String&quot;,
+                ],
               },
             ],
             &quot;seasonalPeriods&quot;: [ # Seasonal periods. Repeated because multiple periods are supported for one time series.
@@ -1419,26 +1449,21 @@
           &quot;evalLoss&quot;: 3.14, # Loss computed on the eval data at the end of iteration.
           &quot;index&quot;: 42, # Index of the iteration, 0 based.
           &quot;learnRate&quot;: 3.14, # Learn rate used for this iteration.
-          &quot;principalComponentInfos&quot;: [ # The information of the principal components.
-            { # Principal component infos, used only for eigen decomposition based models, e.g., PCA. Ordered by explained_variance in the descending order.
-              &quot;cumulativeExplainedVarianceRatio&quot;: 3.14, # The explained_variance is pre-ordered in the descending order to compute the cumulative explained variance ratio.
-              &quot;explainedVariance&quot;: 3.14, # Explained variance by this principal component, which is simply the eigenvalue.
-              &quot;explainedVarianceRatio&quot;: 3.14, # Explained_variance over the total explained variance.
-              &quot;principalComponentId&quot;: &quot;A String&quot;, # Id of the principal component.
-            },
-          ],
           &quot;trainingLoss&quot;: 3.14, # Loss computed on the training data at the end of iteration.
         },
       ],
       &quot;startTime&quot;: &quot;A String&quot;, # The start time of this training run.
       &quot;trainingOptions&quot;: { # Options used in model training. # Options that were used for this training run, includes user specified and default options that were used.
+        &quot;adjustStepChanges&quot;: True or False, # If true, detect step changes and make data adjustment in the input time series.
         &quot;autoArima&quot;: True or False, # Whether to enable auto ARIMA or not.
         &quot;autoArimaMaxOrder&quot;: &quot;A String&quot;, # The max value of non-seasonal p and q.
         &quot;batchSize&quot;: &quot;A String&quot;, # Batch size for dnn models.
+        &quot;cleanSpikesAndDips&quot;: True or False, # If true, clean spikes and dips in the input time series.
         &quot;dataFrequency&quot;: &quot;A String&quot;, # The data frequency of a time series.
         &quot;dataSplitColumn&quot;: &quot;A String&quot;, # The column to split data with. This column won&#x27;t be used as a feature. 1. When data_split_method is CUSTOM, the corresponding column should be boolean. The rows with true value tag are eval data, and the false are training data. 2. When data_split_method is SEQ, the first DATA_SPLIT_EVAL_FRACTION rows (from smallest to largest) in the corresponding column are used as training data, and the rest are eval data. It respects the order in Orderable data types: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#data-type-properties
         &quot;dataSplitEvalFraction&quot;: 3.14, # The fraction of evaluation data over the whole input data. The rest of data will be used as training data. The format should be double. Accurate to two decimal places. Default value is 0.2.
         &quot;dataSplitMethod&quot;: &quot;A String&quot;, # The data split type for training and evaluation, e.g. RANDOM.
+        &quot;decomposeTimeSeries&quot;: True or False, # If true, perform decompose time series and save the results.
         &quot;distanceType&quot;: &quot;A String&quot;, # Distance type for clustering models.
         &quot;dropout&quot;: 3.14, # Dropout probability for dnn models.
         &quot;earlyStop&quot;: True or False, # Whether to stop early when the loss doesn&#x27;t improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.
@@ -1481,6 +1506,9 @@
         &quot;subsample&quot;: 3.14, # Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.
         &quot;timeSeriesDataColumn&quot;: &quot;A String&quot;, # Column to be designated as time series data for ARIMA model.
         &quot;timeSeriesIdColumn&quot;: &quot;A String&quot;, # The time series id column that was used during ARIMA model training.
+        &quot;timeSeriesIdColumns&quot;: [ # The time series id columns that were used during ARIMA model training.
+          &quot;A String&quot;,
+        ],
         &quot;timeSeriesTimestampColumn&quot;: &quot;A String&quot;, # Column to be designated as time series timestamp for ARIMA model.
         &quot;userColumn&quot;: &quot;A String&quot;, # User column specified for matrix factorization models.
         &quot;walsAlpha&quot;: 3.14, # Hyperparameter for matrix factoration when implicit feedback type is specified.
diff --git a/docs/dyn/bigquery_v2.routines.html b/docs/dyn/bigquery_v2.routines.html
index 04e16c0..4c4d3ad 100644
--- a/docs/dyn/bigquery_v2.routines.html
+++ b/docs/dyn/bigquery_v2.routines.html
@@ -152,7 +152,7 @@
   ],
   &quot;language&quot;: &quot;A String&quot;, # Optional. Defaults to &quot;SQL&quot;.
   &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this routine was last modified, in milliseconds since the epoch.
-  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;. TODO(b/173344646) - Update return_type documentation to say it cannot be set for TABLE_VALUED_FUNCTION before preview launch.
+  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;.
     &quot;columns&quot;: [ # The columns in this table type
       { # A field or a column.
         &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
@@ -223,7 +223,7 @@
   ],
   &quot;language&quot;: &quot;A String&quot;, # Optional. Defaults to &quot;SQL&quot;.
   &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this routine was last modified, in milliseconds since the epoch.
-  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;. TODO(b/173344646) - Update return_type documentation to say it cannot be set for TABLE_VALUED_FUNCTION before preview launch.
+  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;.
     &quot;columns&quot;: [ # The columns in this table type
       { # A field or a column.
         &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
@@ -287,7 +287,7 @@
   ],
   &quot;language&quot;: &quot;A String&quot;, # Optional. Defaults to &quot;SQL&quot;.
   &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this routine was last modified, in milliseconds since the epoch.
-  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;. TODO(b/173344646) - Update return_type documentation to say it cannot be set for TABLE_VALUED_FUNCTION before preview launch.
+  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;.
     &quot;columns&quot;: [ # The columns in this table type
       { # A field or a column.
         &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
@@ -366,7 +366,7 @@
       ],
       &quot;language&quot;: &quot;A String&quot;, # Optional. Defaults to &quot;SQL&quot;.
       &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this routine was last modified, in milliseconds since the epoch.
-      &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;. TODO(b/173344646) - Update return_type documentation to say it cannot be set for TABLE_VALUED_FUNCTION before preview launch.
+      &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;.
         &quot;columns&quot;: [ # The columns in this table type
           { # A field or a column.
             &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
@@ -454,7 +454,7 @@
   ],
   &quot;language&quot;: &quot;A String&quot;, # Optional. Defaults to &quot;SQL&quot;.
   &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this routine was last modified, in milliseconds since the epoch.
-  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;. TODO(b/173344646) - Update return_type documentation to say it cannot be set for TABLE_VALUED_FUNCTION before preview launch.
+  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;.
     &quot;columns&quot;: [ # The columns in this table type
       { # A field or a column.
         &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
@@ -518,7 +518,7 @@
   ],
   &quot;language&quot;: &quot;A String&quot;, # Optional. Defaults to &quot;SQL&quot;.
   &quot;lastModifiedTime&quot;: &quot;A String&quot;, # Output only. The time when this routine was last modified, in milliseconds since the epoch.
-  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;. TODO(b/173344646) - Update return_type documentation to say it cannot be set for TABLE_VALUED_FUNCTION before preview launch.
+  &quot;returnTableType&quot;: { # A table type # Optional. Set only if Routine is a &quot;TABLE_VALUED_FUNCTION&quot;.
     &quot;columns&quot;: [ # The columns in this table type
       { # A field or a column.
         &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this field. Can be absent for struct fields.
diff --git a/docs/dyn/bigquery_v2.tables.html b/docs/dyn/bigquery_v2.tables.html
index 8eda07b..a3721ca 100644
--- a/docs/dyn/bigquery_v2.tables.html
+++ b/docs/dyn/bigquery_v2.tables.html
@@ -221,7 +221,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -314,7 +314,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -503,7 +503,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -596,7 +596,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -726,7 +726,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -819,7 +819,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -1032,7 +1032,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -1125,7 +1125,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -1255,7 +1255,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -1348,7 +1348,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -1593,7 +1593,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -1686,7 +1686,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
@@ -1816,7 +1816,7 @@
           },
           &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
           &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+          &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
         },
       ],
     },
@@ -1909,7 +1909,7 @@
         },
         &quot;precision&quot;: &quot;A String&quot;, # [Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ &quot;NUMERIC&quot; and ≠ &quot;BIGNUMERIC&quot;. If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = &quot;NUMERIC&quot;: 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = &quot;NUMERIC&quot;: 1 ≤ precision ≤ 29. - If type = &quot;BIGNUMERIC&quot;: 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.
         &quot;scale&quot;: &quot;A String&quot;, # [Optional] See documentation for precision.
-        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
+        &quot;type&quot;: &quot;A String&quot;, # [Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).
       },
     ],
   },
diff --git a/docs/dyn/bigqueryreservation_v1.html b/docs/dyn/bigqueryreservation_v1.html
index 1bb8222..800a97a 100644
--- a/docs/dyn/bigqueryreservation_v1.html
+++ b/docs/dyn/bigqueryreservation_v1.html
@@ -75,11 +75,6 @@
 <h1><a href="bigqueryreservation_v1.html">BigQuery Reservation API</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="bigqueryreservation_v1.operations.html">operations()</a></code>
-</p>
-<p class="firstline">Returns the operations Resource.</p>
-
-<p class="toc_element">
   <code><a href="bigqueryreservation_v1.projects.html">projects()</a></code>
 </p>
 <p class="firstline">Returns the projects Resource.</p>
diff --git a/docs/dyn/bigtableadmin_v2.projects.instances.clusters.backups.html b/docs/dyn/bigtableadmin_v2.projects.instances.clusters.backups.html
index 12aacd7..e967cef 100644
--- a/docs/dyn/bigtableadmin_v2.projects.instances.clusters.backups.html
+++ b/docs/dyn/bigtableadmin_v2.projects.instances.clusters.backups.html
@@ -120,6 +120,19 @@
     The object takes the form of:
 
 { # A backup of a Cloud Bigtable table.
+  &quot;encryptionInfo&quot;: { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status. # Output only. The encryption information for the backup.
+    &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+    &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+  },
   &quot;endTime&quot;: &quot;A String&quot;, # Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.
   &quot;expireTime&quot;: &quot;A String&quot;, # Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.
   &quot;name&quot;: &quot;A String&quot;, # A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.
@@ -192,6 +205,19 @@
   An object of the form:
 
     { # A backup of a Cloud Bigtable table.
+  &quot;encryptionInfo&quot;: { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status. # Output only. The encryption information for the backup.
+    &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+    &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+  },
   &quot;endTime&quot;: &quot;A String&quot;, # Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.
   &quot;expireTime&quot;: &quot;A String&quot;, # Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.
   &quot;name&quot;: &quot;A String&quot;, # A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.
@@ -279,6 +305,19 @@
     { # The response for ListBackups.
   &quot;backups&quot;: [ # The list of matching backups.
     { # A backup of a Cloud Bigtable table.
+      &quot;encryptionInfo&quot;: { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status. # Output only. The encryption information for the backup.
+        &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;message&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+        &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+      },
       &quot;endTime&quot;: &quot;A String&quot;, # Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.
       &quot;expireTime&quot;: &quot;A String&quot;, # Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.
       &quot;name&quot;: &quot;A String&quot;, # A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.
@@ -316,6 +355,19 @@
     The object takes the form of:
 
 { # A backup of a Cloud Bigtable table.
+  &quot;encryptionInfo&quot;: { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status. # Output only. The encryption information for the backup.
+    &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+    &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+  },
   &quot;endTime&quot;: &quot;A String&quot;, # Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.
   &quot;expireTime&quot;: &quot;A String&quot;, # Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.
   &quot;name&quot;: &quot;A String&quot;, # A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.
@@ -335,6 +387,19 @@
   An object of the form:
 
     { # A backup of a Cloud Bigtable table.
+  &quot;encryptionInfo&quot;: { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status. # Output only. The encryption information for the backup.
+    &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+    &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+  },
   &quot;endTime&quot;: &quot;A String&quot;, # Output only. `end_time` is the time that the backup was finished. The row data in the backup will be no newer than this timestamp.
   &quot;expireTime&quot;: &quot;A String&quot;, # Required. The expiration time of the backup, with microseconds granularity that must be at least 6 hours and at most 30 days from the time the request is received. Once the `expire_time` has passed, Cloud Bigtable will delete the backup and free the resources used by the backup.
   &quot;name&quot;: &quot;A String&quot;, # A globally unique identifier for the backup which cannot be changed. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/ backups/_a-zA-Z0-9*` The final segment of the name must be between 1 and 50 characters in length. The backup is stored in the cluster identified by the prefix of the backup name of the form `projects/{project}/instances/{instance}/clusters/{cluster}`.
diff --git a/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html b/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html
index c19f242..d9ead7c 100644
--- a/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html
+++ b/docs/dyn/bigtableadmin_v2.projects.instances.clusters.html
@@ -117,6 +117,9 @@
 
 { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
   &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
+  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
+    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
+  },
   &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;s nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
   &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
   &quot;serveNodes&quot;: 42, # Required. The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
@@ -187,6 +190,9 @@
 
     { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
   &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
+  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
+    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
+  },
   &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;s nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
   &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
   &quot;serveNodes&quot;: 42, # Required. The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
@@ -213,6 +219,9 @@
   &quot;clusters&quot;: [ # The list of requested clusters.
     { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
       &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
+      &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
+        &quot;kmsKeyName&quot;: &quot;A String&quot;, # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
+      },
       &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;s nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
       &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
       &quot;serveNodes&quot;: 42, # Required. The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
@@ -251,6 +260,9 @@
 
 { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
   &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
+  &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
+    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
+  },
   &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;s nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
   &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
   &quot;serveNodes&quot;: 42, # Required. The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
diff --git a/docs/dyn/bigtableadmin_v2.projects.instances.html b/docs/dyn/bigtableadmin_v2.projects.instances.html
index 1061452..5bf651f 100644
--- a/docs/dyn/bigtableadmin_v2.projects.instances.html
+++ b/docs/dyn/bigtableadmin_v2.projects.instances.html
@@ -141,6 +141,9 @@
   &quot;clusters&quot;: { # Required. The clusters to be created within the instance, mapped by desired cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank. Currently, at most four clusters can be specified.
     &quot;a_key&quot;: { # A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.
       &quot;defaultStorageType&quot;: &quot;A String&quot;, # Immutable. The type of storage used by this cluster to serve its parent instance&#x27;s tables, unless explicitly overridden.
+      &quot;encryptionConfig&quot;: { # Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster. # Immutable. The encryption configuration for CMEK-protected clusters.
+        &quot;kmsKeyName&quot;: &quot;A String&quot;, # Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
+      },
       &quot;location&quot;: &quot;A String&quot;, # Immutable. The location where this cluster&#x27;s nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form `projects/{project}/locations/{zone}`.
       &quot;name&quot;: &quot;A String&quot;, # The unique name of the cluster. Values are of the form `projects/{project}/instances/{instance}/clusters/a-z*`.
       &quot;serveNodes&quot;: 42, # Required. The number of nodes allocated to this cluster. More nodes enable higher throughput and more consistent performance.
diff --git a/docs/dyn/bigtableadmin_v2.projects.instances.tables.html b/docs/dyn/bigtableadmin_v2.projects.instances.tables.html
index 9a2b760..170fa95 100644
--- a/docs/dyn/bigtableadmin_v2.projects.instances.tables.html
+++ b/docs/dyn/bigtableadmin_v2.projects.instances.tables.html
@@ -164,8 +164,23 @@
     },
   ],
   &quot;table&quot;: { # A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster. # Required. The Table to create.
-    &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `FULL`
+    &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL`
       &quot;a_key&quot;: { # The state of a table&#x27;s data in a particular cluster.
+        &quot;encryptionInfo&quot;: [ # Output only. The encryption information for the table in this cluster. If the encryption key protecting this resource is customer managed, then its version can be rotated in Cloud Key Management Service (Cloud KMS). The primary version of the key and its status will be reflected here when changes propagate from Cloud KMS.
+          { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.
+            &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+              &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+              &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                {
+                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                },
+              ],
+              &quot;message&quot;: &quot;A String&quot;, # 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.
+            },
+            &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+            &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+          },
+        ],
         &quot;replicationState&quot;: &quot;A String&quot;, # Output only. The state of replication for the table in this cluster.
       },
     },
@@ -211,8 +226,23 @@
   An object of the form:
 
     { # A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster.
-  &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `FULL`
+  &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL`
     &quot;a_key&quot;: { # The state of a table&#x27;s data in a particular cluster.
+      &quot;encryptionInfo&quot;: [ # Output only. The encryption information for the table in this cluster. If the encryption key protecting this resource is customer managed, then its version can be rotated in Cloud Key Management Service (Cloud KMS). The primary version of the key and its status will be reflected here when changes propagate from Cloud KMS.
+        { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.
+          &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+            &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+              {
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+            &quot;message&quot;: &quot;A String&quot;, # 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.
+          },
+          &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+          &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+        },
+      ],
       &quot;replicationState&quot;: &quot;A String&quot;, # Output only. The state of replication for the table in this cluster.
     },
   },
@@ -329,6 +359,7 @@
       NAME_ONLY - Only populates `name`.
       SCHEMA_VIEW - Only populates `name` and fields related to the table&#x27;s schema.
       REPLICATION_VIEW - Only populates `name` and fields related to the table&#x27;s replication state.
+      ENCRYPTION_VIEW - Only populates &#x27;name&#x27; and fields related to the table&#x27;s encryption state.
       FULL - Populates all fields.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -339,8 +370,23 @@
   An object of the form:
 
     { # A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster.
-  &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `FULL`
+  &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL`
     &quot;a_key&quot;: { # The state of a table&#x27;s data in a particular cluster.
+      &quot;encryptionInfo&quot;: [ # Output only. The encryption information for the table in this cluster. If the encryption key protecting this resource is customer managed, then its version can be rotated in Cloud Key Management Service (Cloud KMS). The primary version of the key and its status will be reflected here when changes propagate from Cloud KMS.
+        { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.
+          &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+            &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+              {
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+            &quot;message&quot;: &quot;A String&quot;, # 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.
+          },
+          &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+          &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+        },
+      ],
       &quot;replicationState&quot;: &quot;A String&quot;, # Output only. The state of replication for the table in this cluster.
     },
   },
@@ -446,6 +492,7 @@
       NAME_ONLY - Only populates `name`.
       SCHEMA_VIEW - Only populates `name` and fields related to the table&#x27;s schema.
       REPLICATION_VIEW - Only populates `name` and fields related to the table&#x27;s replication state.
+      ENCRYPTION_VIEW - Only populates &#x27;name&#x27; and fields related to the table&#x27;s encryption state.
       FULL - Populates all fields.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -459,8 +506,23 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Set if not all tables could be returned in a single response. Pass this value to `page_token` in another request to get the next page of results.
   &quot;tables&quot;: [ # The tables present in the requested instance.
     { # A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster.
-      &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `FULL`
+      &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL`
         &quot;a_key&quot;: { # The state of a table&#x27;s data in a particular cluster.
+          &quot;encryptionInfo&quot;: [ # Output only. The encryption information for the table in this cluster. If the encryption key protecting this resource is customer managed, then its version can be rotated in Cloud Key Management Service (Cloud KMS). The primary version of the key and its status will be reflected here when changes propagate from Cloud KMS.
+            { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.
+              &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+              &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+              &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+            },
+          ],
           &quot;replicationState&quot;: &quot;A String&quot;, # Output only. The state of replication for the table in this cluster.
         },
       },
@@ -571,8 +633,23 @@
   An object of the form:
 
     { # A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster.
-  &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `FULL`
+  &quot;clusterStates&quot;: { # Output only. Map from cluster ID to per-cluster table state. If it could not be determined whether or not the table has data in a particular cluster (for example, if its zone is unavailable), then there will be an entry for the cluster with UNKNOWN `replication_status`. Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL`
     &quot;a_key&quot;: { # The state of a table&#x27;s data in a particular cluster.
+      &quot;encryptionInfo&quot;: [ # Output only. The encryption information for the table in this cluster. If the encryption key protecting this resource is customer managed, then its version can be rotated in Cloud Key Management Service (Cloud KMS). The primary version of the key and its status will be reflected here when changes propagate from Cloud KMS.
+        { # Encryption information for a given resource. If this resource is protected with customer managed encryption, the in-use Cloud Key Management Service (Cloud KMS) key version is specified along with its status.
+          &quot;encryptionStatus&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Output only. The status of encrypt/decrypt calls on underlying data for this resource. Regardless of status, the existing data is always encrypted at rest.
+            &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+            &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+              {
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+            ],
+            &quot;message&quot;: &quot;A String&quot;, # 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.
+          },
+          &quot;encryptionType&quot;: &quot;A String&quot;, # Output only. The type of encryption used to protect this resource.
+          &quot;kmsKeyVersion&quot;: &quot;A String&quot;, # Output only. The version of the Cloud KMS key specified in the parent cluster that is in use for the data underlying this table.
+        },
+      ],
       &quot;replicationState&quot;: &quot;A String&quot;, # Output only. The state of replication for the table in this cluster.
     },
   },
diff --git a/docs/dyn/bigtableadmin_v2.projects.locations.html b/docs/dyn/bigtableadmin_v2.projects.locations.html
index 7047484..b5b5d1e 100644
--- a/docs/dyn/bigtableadmin_v2.projects.locations.html
+++ b/docs/dyn/bigtableadmin_v2.projects.locations.html
@@ -125,9 +125,9 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/billingbudgets_v1.billingAccounts.budgets.html b/docs/dyn/billingbudgets_v1.billingAccounts.budgets.html
index a1885ee..7b4a4a7 100644
--- a/docs/dyn/billingbudgets_v1.billingAccounts.budgets.html
+++ b/docs/dyn/billingbudgets_v1.billingAccounts.budgets.html
@@ -112,7 +112,7 @@
 
 { # A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -120,7 +120,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
@@ -182,7 +182,7 @@
 
     { # A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -190,7 +190,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
@@ -277,7 +277,7 @@
 
     { # A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -285,7 +285,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
@@ -358,7 +358,7 @@
   &quot;budgets&quot;: [ # List of the budgets owned by the requested billing account.
     { # A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.
       &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-        &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+        &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
         },
         &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
           &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -366,7 +366,7 @@
           &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
         },
       },
-      &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+      &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
         &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
         &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
           &quot;A String&quot;,
@@ -447,7 +447,7 @@
 
 { # A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -455,7 +455,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
@@ -518,7 +518,7 @@
 
     { # A budget is a plan that describes what you expect to spend on Cloud projects, plus the rules to execute as spend is tracked against that plan, (for example, send an alert when 90% of the target spend is met). The budget time period is configurable, with options such as month (default), quarter, year, or custom time period.
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -526,7 +526,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
diff --git a/docs/dyn/billingbudgets_v1beta1.billingAccounts.budgets.html b/docs/dyn/billingbudgets_v1beta1.billingAccounts.budgets.html
index 93ccff0..2c323d0 100644
--- a/docs/dyn/billingbudgets_v1beta1.billingAccounts.budgets.html
+++ b/docs/dyn/billingbudgets_v1beta1.billingAccounts.budgets.html
@@ -121,7 +121,7 @@
       &quot;schemaVersion&quot;: &quot;A String&quot;, # Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only &quot;1.0&quot; is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
     },
     &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-      &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+      &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
       },
       &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
         &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -129,7 +129,7 @@
         &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
       },
     },
-    &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+    &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
       &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
       &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
         &quot;A String&quot;,
@@ -192,7 +192,7 @@
     &quot;schemaVersion&quot;: &quot;A String&quot;, # Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only &quot;1.0&quot; is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
   },
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -200,7 +200,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
@@ -287,7 +287,7 @@
     &quot;schemaVersion&quot;: &quot;A String&quot;, # Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only &quot;1.0&quot; is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
   },
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -295,7 +295,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
@@ -368,7 +368,7 @@
         &quot;schemaVersion&quot;: &quot;A String&quot;, # Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only &quot;1.0&quot; is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
       },
       &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-        &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+        &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
         },
         &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
           &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -376,7 +376,7 @@
           &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
         },
       },
-      &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+      &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
         &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
         &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
           &quot;A String&quot;,
@@ -458,7 +458,7 @@
       &quot;schemaVersion&quot;: &quot;A String&quot;, # Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only &quot;1.0&quot; is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
     },
     &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-      &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+      &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
       },
       &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
         &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -466,7 +466,7 @@
         &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
       },
     },
-    &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+    &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
       &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
       &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
         &quot;A String&quot;,
@@ -530,7 +530,7 @@
     &quot;schemaVersion&quot;: &quot;A String&quot;, # Optional. Required when AllUpdatesRule.pubsub_topic is set. The schema version of the notification sent to AllUpdatesRule.pubsub_topic. Only &quot;1.0&quot; is accepted. It represents the JSON schema as defined in https://cloud.google.com/billing/docs/how-to/budgets-programmatic-notifications#notification_format.
   },
   &quot;amount&quot;: { # The budgeted amount for each usage period. # Required. Budgeted amount.
-    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to last period&#x27;s spend. At this time, the amount is automatically 100% of last period&#x27;s spend; that is, there are no other options yet. Future configuration will be described here (for example, configuring a percentage of last period&#x27;s spend). # Use the last period&#x27;s actual spend as the budget for the present period. Cannot be set in combination with Filter.custom_period.
+    &quot;lastPeriodAmount&quot;: { # Describes a budget amount targeted to the last Filter.calendar_period spend. At this time, the amount is automatically 100% of the last calendar period&#x27;s spend; that is, there are no other options yet. Future configuration options will be described here (for example, configuring a percentage of last period&#x27;s spend). LastPeriodAmount cannot be set for a budget configured with a Filter.custom_period. # Use the last period&#x27;s actual spend as the budget for the present period. LastPeriodAmount can only be set when the budget&#x27;s time period is a Filter.calendar_period. It cannot be set in combination with Filter.custom_period.
     },
     &quot;specifiedAmount&quot;: { # Represents an amount of money with its currency type. # A specified amount to use as the budget. `currency_code` is optional. If specified when creating a budget, it must match the currency of the billing account. If specified when updating a budget, it must match the currency_code of the existing budget. The `currency_code` is provided on output.
       &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
@@ -538,7 +538,7 @@
       &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
     },
   },
-  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget.
+  &quot;budgetFilter&quot;: { # A filter for a budget, limiting the scope of the cost to calculate. # Optional. Filters that define which resources are used to compute the actual spend against the budget amount, such as projects, services, and the budget&#x27;s time period, as well as other filters.
     &quot;calendarPeriod&quot;: &quot;A String&quot;, # Optional. Specifies to track usage for recurring calendar period. E.g. Assume that CalendarPeriod.QUARTER is set. The budget will track usage from April 1 to June 30, when current calendar month is April, May, June. After that, it will track usage from July 1 to September 30 when current calendar month is July, August, September, and so on.
     &quot;creditTypes&quot;: [ # Optional. If Filter.credit_types_treatment is INCLUDE_SPECIFIED_CREDITS, this is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. If Filter.credit_types_treatment is **not** INCLUDE_SPECIFIED_CREDITS, this field must be empty. See [a list of acceptable credit type values](https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables#credits-type).
       &quot;A String&quot;,
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index c46d2b6..935a2e3 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -136,7 +136,7 @@
     Allowed values
       all - Notifications are sent to all guests.
       externalOnly - Notifications are sent to non-Google Calendar guests only.
-      none - No notifications are sent. This value should only be used for migration use cases (note that in most migration cases the import method should be used).
+      none - No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
 </pre>
 </div>
 
@@ -1209,7 +1209,7 @@
     Allowed values
       all - Notifications are sent to all guests.
       externalOnly - Notifications are sent to non-Google Calendar guests only.
-      none - No notifications are sent. This value should only be used for migration use cases (note that in most migration cases the import method should be used).
+      none - No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
   supportsAttachments: boolean, Whether API client performing operation supports event attachments. Optional. The default is False.
 
 Returns:
@@ -2145,7 +2145,7 @@
     Allowed values
       all - Notifications are sent to all guests.
       externalOnly - Notifications are sent to non-Google Calendar guests only.
-      none - No notifications are sent. This value should only be used for migration use cases (note that in most migration cases the import method should be used).
+      none - No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
 
 Returns:
   An object of the form:
@@ -2681,7 +2681,7 @@
     Allowed values
       all - Notifications are sent to all guests.
       externalOnly - Notifications are sent to non-Google Calendar guests only.
-      none - No notifications are sent. This value should only be used for migration use cases (note that in most migration cases the import method should be used).
+      none - No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
   supportsAttachments: boolean, Whether API client performing operation supports event attachments. Optional. The default is False.
 
 Returns:
@@ -2957,7 +2957,7 @@
     Allowed values
       all - Notifications are sent to all guests.
       externalOnly - Notifications are sent to non-Google Calendar guests only.
-      none - No notifications are sent. This value should only be used for migration use cases (note that in most migration cases the import method should be used).
+      none - No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
 
 Returns:
   An object of the form:
@@ -3493,7 +3493,7 @@
     Allowed values
       all - Notifications are sent to all guests.
       externalOnly - Notifications are sent to non-Google Calendar guests only.
-      none - No notifications are sent. This value should only be used for migration use cases (note that in most migration cases the import method should be used).
+      none - No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
   supportsAttachments: boolean, Whether API client performing operation supports event attachments. Optional. The default is False.
 
 Returns:
diff --git a/docs/dyn/chromemanagement_v1.customers.html b/docs/dyn/chromemanagement_v1.customers.html
new file mode 100644
index 0000000..1cddff2
--- /dev/null
+++ b/docs/dyn/chromemanagement_v1.customers.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromemanagement_v1.html">Chrome Management API</a> . <a href="chromemanagement_v1.customers.html">customers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="chromemanagement_v1.customers.reports.html">reports()</a></code>
+</p>
+<p class="firstline">Returns the reports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromemanagement_v1.customers.reports.html b/docs/dyn/chromemanagement_v1.customers.reports.html
new file mode 100644
index 0000000..6ea8279
--- /dev/null
+++ b/docs/dyn/chromemanagement_v1.customers.reports.html
@@ -0,0 +1,261 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromemanagement_v1.html">Chrome Management API</a> . <a href="chromemanagement_v1.customers.html">customers</a> . <a href="chromemanagement_v1.customers.reports.html">reports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#countChromeVersions">countChromeVersions(customer, filter=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generate report of installed Chrome versions.</p>
+<p class="toc_element">
+  <code><a href="#countChromeVersions_next">countChromeVersions_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#countInstalledApps">countInstalledApps(customer, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generate report of app installations.</p>
+<p class="toc_element">
+  <code><a href="#countInstalledApps_next">countInstalledApps_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#findInstalledAppDevices">findInstalledAppDevices(customer, appId=None, appType=None, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generate report of devices that have a specified app installed.</p>
+<p class="toc_element">
+  <code><a href="#findInstalledAppDevices_next">findInstalledAppDevices_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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="countChromeVersions">countChromeVersions(customer, filter=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Generate report of installed Chrome versions.
+
+Args:
+  customer: string, Required. Customer id or &quot;my_customer&quot; to use the customer associated to the account making the request. (required)
+  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * last_active_date
+  orgUnitId: string, The ID of the organizational unit.
+  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
+  pageToken: string, Token to specify the next page in the list.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response containing requested browser versions details and counts.
+  &quot;browserVersions&quot;: [ # List of all browser versions and their install counts.
+    { # Describes a browser version and its install count.
+      &quot;channel&quot;: &quot;A String&quot;, # Output only. The release channel of the installed browser.
+      &quot;count&quot;: &quot;A String&quot;, # Output only. Count grouped by device_system and major version
+      &quot;deviceOsVersion&quot;: &quot;A String&quot;, # Output only. Version of the system-specified operating system.
+      &quot;system&quot;: &quot;A String&quot;, # Output only. The device operating system.
+      &quot;version&quot;: &quot;A String&quot;, # Output only. The full version of the installed browser.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to specify the next page in the list.
+  &quot;totalSize&quot;: 42, # Total number browser versions matching request.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="countChromeVersions_next">countChromeVersions_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="countInstalledApps">countInstalledApps(customer, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Generate report of app installations.
+
+Args:
+  customer: string, Required. Customer id or &quot;my_customer&quot; to use the customer associated to the account making the request. (required)
+  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * app_name * app_type * install_type * number_of_permissions * total_install_count * latest_profile_active_date * permission_name
+  orderBy: string, Field used to order results. Supported order by fields: * app_name * app_type * install_type * number_of_permissions * total_install_count
+  orgUnitId: string, The ID of the organizational unit.
+  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
+  pageToken: string, Token to specify next page in the list.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response containing details of queried installed apps.
+  &quot;installedApps&quot;: [ # List of installed apps matching request.
+    { # Describes an installed app.
+      &quot;appId&quot;: &quot;A String&quot;, # Output only. Unique identifier of the app. For Chrome apps and extensions, the 32-character id (e.g. ehoadneljpdggcbbknedodolkkjodefl). For Android apps, the package name (e.g. com.evernote).
+      &quot;appInstallType&quot;: &quot;A String&quot;, # Output only. How the app was installed.
+      &quot;appSource&quot;: &quot;A String&quot;, # Output only. Source of the installed app.
+      &quot;appType&quot;: &quot;A String&quot;, # Output only. Type of the app.
+      &quot;browserDeviceCount&quot;: &quot;A String&quot;, # Output only. Count of browser devices with this app installed.
+      &quot;description&quot;: &quot;A String&quot;, # Output only. Description of the installed app.
+      &quot;disabled&quot;: True or False, # Output only. Whether the app is disabled.
+      &quot;displayName&quot;: &quot;A String&quot;, # Output only. Name of the installed app.
+      &quot;homepageUri&quot;: &quot;A String&quot;, # Output only. Homepage uri of the installed app.
+      &quot;osUserCount&quot;: &quot;A String&quot;, # Output only. Count of ChromeOS users with this app installed.
+      &quot;permissions&quot;: [ # Output only. Permissions of the installed app.
+        &quot;A String&quot;,
+      ],
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to specify next page in the list.
+  &quot;totalSize&quot;: 42, # Total number of installed apps matching request.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="countInstalledApps_next">countInstalledApps_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="findInstalledAppDevices">findInstalledAppDevices(customer, appId=None, appType=None, filter=None, orderBy=None, orgUnitId=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Generate report of devices that have a specified app installed.
+
+Args:
+  customer: string, Required. Customer id or &quot;my_customer&quot; to use the customer associated to the account making the request. (required)
+  appId: string, Unique identifier of the app. For Chrome apps and extensions, the 32-character id (e.g. ehoadneljpdggcbbknedodolkkjodefl). For Android apps, the package name (e.g. com.evernote).
+  appType: string, Type of the app.
+    Allowed values
+      APP_TYPE_UNSPECIFIED - App type not specified.
+      EXTENSION - Chrome extension.
+      APP - Chrome app.
+      THEME - Chrome theme.
+      HOSTED_APP - Chrome hosted app.
+      ANDROID_APP - ARC++ app.
+  filter: string, Query string to filter results, AND-separated fields in EBNF syntax. Note: OR operations are not supported in this filter. Supported filter fields: * last_active_date
+  orderBy: string, Field used to order results. Supported order by fields: * machine * device_id
+  orgUnitId: string, The ID of the organizational unit.
+  pageSize: integer, Maximum number of results to return. Maximum and default are 100.
+  pageToken: string, Token to specify the next page in the list.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response containing a list of devices with queried app installed.
+  &quot;devices&quot;: [ # A list of devices which have the app installed. Sorted in ascending alphabetical order on the Device.machine field.
+    { # Describes a device reporting Chrome browser information.
+      &quot;deviceId&quot;: &quot;A String&quot;, # Output only. The ID of the device that reported this Chrome browser information.
+      &quot;machine&quot;: &quot;A String&quot;, # Output only. The name of the machine within its local network.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to specify the next page in the list.
+  &quot;totalSize&quot;: 42, # Total number of devices matching request.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="findInstalledAppDevices_next">findInstalledAppDevices_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromemanagement_v1.html b/docs/dyn/chromemanagement_v1.html
new file mode 100644
index 0000000..55ec5fb
--- /dev/null
+++ b/docs/dyn/chromemanagement_v1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromemanagement_v1.html">Chrome Management API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="chromemanagement_v1.customers.html">customers()</a></code>
+</p>
+<p class="firstline">Returns the customers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromepolicy_v1.customers.html b/docs/dyn/chromepolicy_v1.customers.html
new file mode 100644
index 0000000..faad9de
--- /dev/null
+++ b/docs/dyn/chromepolicy_v1.customers.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromepolicy_v1.html">Chrome Policy API</a> . <a href="chromepolicy_v1.customers.html">customers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="chromepolicy_v1.customers.policies.html">policies()</a></code>
+</p>
+<p class="firstline">Returns the policies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="chromepolicy_v1.customers.policySchemas.html">policySchemas()</a></code>
+</p>
+<p class="firstline">Returns the policySchemas Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromepolicy_v1.customers.policies.html b/docs/dyn/chromepolicy_v1.customers.policies.html
new file mode 100644
index 0000000..c0ecb33
--- /dev/null
+++ b/docs/dyn/chromepolicy_v1.customers.policies.html
@@ -0,0 +1,167 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromepolicy_v1.html">Chrome Policy API</a> . <a href="chromepolicy_v1.customers.html">customers</a> . <a href="chromepolicy_v1.customers.policies.html">policies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="chromepolicy_v1.customers.policies.orgunits.html">orgunits()</a></code>
+</p>
+<p class="firstline">Returns the orgunits Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#resolve">resolve(customer, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the resolved policy values for a list of policies that match a search query.</p>
+<p class="toc_element">
+  <code><a href="#resolve_next">resolve_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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resolve">resolve(customer, body=None, x__xgafv=None)</code>
+  <pre>Gets the resolved policy values for a list of policies that match a search query.
+
+Args:
+  customer: string, ID of the G Suite account or literal &quot;my_customer&quot; for the customer associated to the request. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for getting the resolved policy value for a specific target.
+  &quot;pageSize&quot;: 42, # The maximum number of policies to return, defaults to 100 and has a maximum of 1000.
+  &quot;pageToken&quot;: &quot;A String&quot;, # The page token used to retrieve a specific page of the request.
+  &quot;policySchemaFilter&quot;: &quot;A String&quot;, # The schema filter to apply to the resolve request. Specify a schema name to view a particular schema, for example: chrome.users.ShowLogoutButton Wildcards are supported, but only in the leaf portion of the schema name. Wildcards cannot be used in namespace directly. Please read https://developers.google.com/chrome/chrome-management/guides/policyapi for details on schema namepsaces. For example: Valid: &quot;chrome.users.*&quot;, &quot;chrome.users.apps.*&quot;, &quot;chrome.printers.*&quot; Invalid: &quot;*&quot;, &quot;*.users&quot;, &quot;chrome.*&quot;, &quot;chrome.*.apps.*&quot;
+  &quot;policyTargetKey&quot;: { # The key used to identify the target on which the policy will be applied. # Required. The key of the target resource on which the policies should be resolved. The target resource must point to an Org Unit.
+    &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for getting the resolved policy value for a specific target.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The page token used to get the next set of resolved policies found by the request.
+  &quot;resolvedPolicies&quot;: [ # The list of resolved policies found by the resolve request.
+    { # The resolved value of a policy for a given target.
+      &quot;sourceKey&quot;: { # The key used to identify the target on which the policy will be applied. # Output only. The source resource from which this policy value is obtained. May be the same as `targetKey` if the policy is directly modified on the target, otherwise it would be another resource from which the policy gets its value (if applicable). If not present, the source is the default value for the customer.
+        &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
+      },
+      &quot;targetKey&quot;: { # The key used to identify the target on which the policy will be applied. # Output only. The target resource for which the resolved policy value applies.
+        &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
+      },
+      &quot;value&quot;: { # A particular value for a policy managed by the service. # Output only. The resolved value of the policy.
+        &quot;policySchema&quot;: &quot;A String&quot;, # The fully qualified name of the policy schema associated with this policy.
+        &quot;value&quot;: { # The value of the policy that is compatible with the schema that it is associated with.
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+        },
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="resolve_next">resolve_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromepolicy_v1.customers.policies.orgunits.html b/docs/dyn/chromepolicy_v1.customers.policies.orgunits.html
new file mode 100644
index 0000000..d389a9f
--- /dev/null
+++ b/docs/dyn/chromepolicy_v1.customers.policies.orgunits.html
@@ -0,0 +1,168 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromepolicy_v1.html">Chrome Policy API</a> . <a href="chromepolicy_v1.customers.html">customers</a> . <a href="chromepolicy_v1.customers.policies.html">policies</a> . <a href="chromepolicy_v1.customers.policies.orgunits.html">orgunits</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchInherit">batchInherit(customer, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Modify multiple policy values that are applied to a specific org unit so that they now inherit the value from a parent (if applicable). All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`. On failure the request will return the error details as part of the google.rpc.Status.</p>
+<p class="toc_element">
+  <code><a href="#batchModify">batchModify(customer, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Modify multiple policy values that are applied to a specific org unit. All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`. On failure the request will return the error details as part of the google.rpc.Status.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchInherit">batchInherit(customer, body=None, x__xgafv=None)</code>
+  <pre>Modify multiple policy values that are applied to a specific org unit so that they now inherit the value from a parent (if applicable). All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`. On failure the request will return the error details as part of the google.rpc.Status.
+
+Args:
+  customer: string, ID of the G Suite account or literal &quot;my_customer&quot; for the customer associated to the request. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for specifying that multiple policy values inherit their value from their parents.
+  &quot;requests&quot;: [ # List of policies that have to inherit their values as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to an org unit resource. 3. All `policyTargetKey` values must have the same key names in the ` additionalTargetKeys`. This also means if one of the targets has an empty `additionalTargetKeys` map, all of the targets must have an empty `additionalTargetKeys` map. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair.
+    { # Request parameters for inheriting policy value of a specific org unit target from the policy value of its parent org unit.
+      &quot;policySchema&quot;: &quot;A String&quot;, # The fully qualified name of the policy schema that is being inherited.
+      &quot;policyTargetKey&quot;: { # The key used to identify the target on which the policy will be applied. # Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit.
+        &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
+      },
+    },
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="batchModify">batchModify(customer, body=None, x__xgafv=None)</code>
+  <pre>Modify multiple policy values that are applied to a specific org unit. All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`. On failure the request will return the error details as part of the google.rpc.Status.
+
+Args:
+  customer: string, ID of the G Suite account or literal &quot;my_customer&quot; for the customer associated to the request. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for modifying multiple policy values for a specific target.
+  &quot;requests&quot;: [ # List of policies to modify as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to an org unit resource. 3. All `policyTargetKey` values must have the same key names in the ` additionalTargetKeys`. This also means if one of the targets has an empty `additionalTargetKeys` map, all of the targets must have an empty `additionalTargetKeys` map. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair.
+    { # Request parameters for modifying a policy value for a specific org unit target.
+      &quot;policyTargetKey&quot;: { # The key used to identify the target on which the policy will be applied. # Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit.
+        &quot;additionalTargetKeys&quot;: { # Map containing the additional target key name and value pairs used to further identify the target of the policy.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;targetResource&quot;: &quot;A String&quot;, # The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (&quot;orgunits/{orgunit_id}&quot;)
+      },
+      &quot;policyValue&quot;: { # A particular value for a policy managed by the service. # The new value for the policy.
+        &quot;policySchema&quot;: &quot;A String&quot;, # The fully qualified name of the policy schema associated with this policy.
+        &quot;value&quot;: { # The value of the policy that is compatible with the schema that it is associated with.
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+        },
+      },
+      &quot;updateMask&quot;: &quot;A String&quot;, # Required. Policy fields to update. Only fields in this mask will be updated; other fields in `policy_value` will be ignored (even if they have values). If a field is in this list it must have a value in &#x27;policy_value&#x27;.
+    },
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromepolicy_v1.customers.policySchemas.html b/docs/dyn/chromepolicy_v1.customers.policySchemas.html
new file mode 100644
index 0000000..a7bacc2
--- /dev/null
+++ b/docs/dyn/chromepolicy_v1.customers.policySchemas.html
@@ -0,0 +1,333 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromepolicy_v1.html">Chrome Policy API</a> . <a href="chromepolicy_v1.customers.html">customers</a> . <a href="chromepolicy_v1.customers.policySchemas.html">policySchemas</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Get a specific policy schema for a customer by its resource name.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a list of policy schemas that match a specified filter value for a given customer.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Get a specific policy schema for a customer by its resource name.
+
+Args:
+  name: string, Required. The policy schema resource name to query. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Resource representing a policy schema. Next ID: 10
+  &quot;accessRestrictions&quot;: [ # Output only. Specific access restrictions related to this policy.
+    &quot;A String&quot;,
+  ],
+  &quot;additionalTargetKeyNames&quot;: [ # Output only. Additional key names that will be used to identify the target of the policy value. When specifying a `policyTargetKey`, each of the additional keys specified here will have to be included in the `additionalTargetKeys` map.
+    { # Additional key names that will be used to identify the target of the policy value.
+      &quot;key&quot;: &quot;A String&quot;, # Key name.
+      &quot;keyDescription&quot;: &quot;A String&quot;, # Key description.
+    },
+  ],
+  &quot;definition&quot;: { # Describes a complete .proto file. # Schema definition using proto descriptor.
+    &quot;enumType&quot;: [
+      { # Describes an enum type.
+        &quot;name&quot;: &quot;A String&quot;,
+        &quot;value&quot;: [
+          { # Describes a value within an enum.
+            &quot;name&quot;: &quot;A String&quot;,
+            &quot;number&quot;: 42,
+          },
+        ],
+      },
+    ],
+    &quot;messageType&quot;: [ # All top-level definitions in this file.
+      { # Describes a message type.
+        &quot;enumType&quot;: [
+          { # Describes an enum type.
+            &quot;name&quot;: &quot;A String&quot;,
+            &quot;value&quot;: [
+              { # Describes a value within an enum.
+                &quot;name&quot;: &quot;A String&quot;,
+                &quot;number&quot;: 42,
+              },
+            ],
+          },
+        ],
+        &quot;field&quot;: [
+          { # Describes a field within a message.
+            &quot;defaultValue&quot;: &quot;A String&quot;, # For numeric types, contains the original text representation of the value. For booleans, &quot;true&quot; or &quot;false&quot;. For strings, contains the default text contents (not escaped in any way). For bytes, contains the C escaped value. All bytes &gt;= 128 are escaped.
+            &quot;jsonName&quot;: &quot;A String&quot;, # JSON name of this field. The value is set by protocol compiler. If the user has set a &quot;json_name&quot; option on this field, that option&#x27;s value will be used. Otherwise, it&#x27;s deduced from the field&#x27;s name by converting it to camelCase.
+            &quot;label&quot;: &quot;A String&quot;,
+            &quot;name&quot;: &quot;A String&quot;,
+            &quot;number&quot;: 42,
+            &quot;oneofIndex&quot;: 42, # If set, gives the index of a oneof in the containing type&#x27;s oneof_decl list. This field is a member of that oneof.
+            &quot;proto3Optional&quot;: True or False, # If true, this is a proto3 &quot;optional&quot;. When a proto3 field is optional, it tracks presence regardless of field type. When proto3_optional is true, this field must be belong to a oneof to signal to old proto3 clients that presence is tracked for this field. This oneof is known as a &quot;synthetic&quot; oneof, and this field must be its sole member (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs exist in the descriptor only, and do not generate any API. Synthetic oneofs must be ordered after all &quot;real&quot; oneofs. For message fields, proto3_optional doesn&#x27;t create any semantic change, since non-repeated message fields always track presence. However it still indicates the semantic detail of whether the user wrote &quot;optional&quot; or not. This can be useful for round-tripping the .proto file. For consistency we give message fields a synthetic oneof also, even though it is not required to track presence. This is especially important because the parser can&#x27;t tell if a field is a message or an enum, so it must always create a synthetic oneof. Proto2 optional fields do not set this flag, because they already indicate optional with `LABEL_OPTIONAL`.
+            &quot;type&quot;: &quot;A String&quot;, # If type_name is set, this need not be set. If both this and type_name are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+            &quot;typeName&quot;: &quot;A String&quot;, # For message and enum types, this is the name of the type. If the name starts with a &#x27;.&#x27;, it is fully-qualified. Otherwise, C++-like scoping rules are used to find the type (i.e. first the nested types within this message are searched, then within the parent, on up to the root namespace).
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;,
+        &quot;nestedType&quot;: [
+          # Object with schema name: Proto2DescriptorProto
+        ],
+        &quot;oneofDecl&quot;: [
+          { # Describes a oneof.
+            &quot;name&quot;: &quot;A String&quot;,
+          },
+        ],
+      },
+    ],
+    &quot;name&quot;: &quot;A String&quot;, # file name, relative to root of source tree
+    &quot;package&quot;: &quot;A String&quot;, # e.g. &quot;foo&quot;, &quot;foo.bar&quot;, etc.
+    &quot;syntax&quot;: &quot;A String&quot;, # The syntax of the proto file. The supported values are &quot;proto2&quot; and &quot;proto3&quot;.
+  },
+  &quot;fieldDescriptions&quot;: [ # Output only. Detailed description of each field that is part of the schema.
+    { # Provides detailed information for a particular field that is part of a PolicySchema.
+      &quot;description&quot;: &quot;A String&quot;, # Output only. The description for the field.
+      &quot;field&quot;: &quot;A String&quot;, # Output only. The name of the field for associated with this description.
+      &quot;inputConstraint&quot;: &quot;A String&quot;, # Output only. Any input constraints associated on the values for the field.
+      &quot;knownValueDescriptions&quot;: [ # Output only. If the field has a set of know values, this field will provide a description for these values.
+        { # Provides detailed information about a known value that is allowed for a particular field in a PolicySchema.
+          &quot;description&quot;: &quot;A String&quot;, # Output only. Additional description for this value.
+          &quot;value&quot;: &quot;A String&quot;, # Output only. The string represenstation of the value that can be set for the field.
+        },
+      ],
+      &quot;nestedFieldDescriptions&quot;: [ # Output only. Provides the description of the fields nested in this field, if the field is a message type that defines multiple fields.
+        # Object with schema name: GoogleChromePolicyV1PolicySchemaFieldDescription
+      ],
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Format: name=customers/{customer}/policySchemas/{schema_namespace}
+  &quot;notices&quot;: [ # Output only. Special notice messages related to setting certain values in certain fields in the schema.
+    { # Provides special notice messages related to a particular value in a field that is part of a PolicySchema.
+      &quot;acknowledgementRequired&quot;: True or False, # Output only. Whether the user needs to acknowledge the notice message before the value can be set.
+      &quot;field&quot;: &quot;A String&quot;, # Output only. The field name associated with the notice.
+      &quot;noticeMessage&quot;: &quot;A String&quot;, # Output only. The notice message associate with the value of the field.
+      &quot;noticeValue&quot;: &quot;A String&quot;, # Output only. The value of the field that has a notice. When setting the field to this value, the user may be required to acknowledge the notice message in order for the value to be set.
+    },
+  ],
+  &quot;policyDescription&quot;: &quot;A String&quot;, # Output only. Description about the policy schema for user consumption.
+  &quot;schemaName&quot;: &quot;A String&quot;, # Output only. The full qualified name of the policy schema. This value is used to fill the field `policy_schema` in PolicyValue when calling BatchInheritOrgUnitPolicies or BatchModifyOrgUnitPolicies.
+  &quot;supportUri&quot;: &quot;A String&quot;, # Output only. URI to related support article for this schema.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Gets a list of policy schemas that match a specified filter value for a given customer.
+
+Args:
+  parent: string, Required. The customer for which the listing request will apply. (required)
+  filter: string, The schema filter used to find a particular schema based on fields like its resource name, description and `additionalTargetKeyNames`.
+  pageSize: integer, The maximum number of policy schemas to return.
+  pageToken: string, The page token used to retrieve a specific page of the listing request.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for listing policy schemas that match a filter.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The page token used to get the next page of policy schemas.
+  &quot;policySchemas&quot;: [ # The list of policy schemas that match the query.
+    { # Resource representing a policy schema. Next ID: 10
+      &quot;accessRestrictions&quot;: [ # Output only. Specific access restrictions related to this policy.
+        &quot;A String&quot;,
+      ],
+      &quot;additionalTargetKeyNames&quot;: [ # Output only. Additional key names that will be used to identify the target of the policy value. When specifying a `policyTargetKey`, each of the additional keys specified here will have to be included in the `additionalTargetKeys` map.
+        { # Additional key names that will be used to identify the target of the policy value.
+          &quot;key&quot;: &quot;A String&quot;, # Key name.
+          &quot;keyDescription&quot;: &quot;A String&quot;, # Key description.
+        },
+      ],
+      &quot;definition&quot;: { # Describes a complete .proto file. # Schema definition using proto descriptor.
+        &quot;enumType&quot;: [
+          { # Describes an enum type.
+            &quot;name&quot;: &quot;A String&quot;,
+            &quot;value&quot;: [
+              { # Describes a value within an enum.
+                &quot;name&quot;: &quot;A String&quot;,
+                &quot;number&quot;: 42,
+              },
+            ],
+          },
+        ],
+        &quot;messageType&quot;: [ # All top-level definitions in this file.
+          { # Describes a message type.
+            &quot;enumType&quot;: [
+              { # Describes an enum type.
+                &quot;name&quot;: &quot;A String&quot;,
+                &quot;value&quot;: [
+                  { # Describes a value within an enum.
+                    &quot;name&quot;: &quot;A String&quot;,
+                    &quot;number&quot;: 42,
+                  },
+                ],
+              },
+            ],
+            &quot;field&quot;: [
+              { # Describes a field within a message.
+                &quot;defaultValue&quot;: &quot;A String&quot;, # For numeric types, contains the original text representation of the value. For booleans, &quot;true&quot; or &quot;false&quot;. For strings, contains the default text contents (not escaped in any way). For bytes, contains the C escaped value. All bytes &gt;= 128 are escaped.
+                &quot;jsonName&quot;: &quot;A String&quot;, # JSON name of this field. The value is set by protocol compiler. If the user has set a &quot;json_name&quot; option on this field, that option&#x27;s value will be used. Otherwise, it&#x27;s deduced from the field&#x27;s name by converting it to camelCase.
+                &quot;label&quot;: &quot;A String&quot;,
+                &quot;name&quot;: &quot;A String&quot;,
+                &quot;number&quot;: 42,
+                &quot;oneofIndex&quot;: 42, # If set, gives the index of a oneof in the containing type&#x27;s oneof_decl list. This field is a member of that oneof.
+                &quot;proto3Optional&quot;: True or False, # If true, this is a proto3 &quot;optional&quot;. When a proto3 field is optional, it tracks presence regardless of field type. When proto3_optional is true, this field must be belong to a oneof to signal to old proto3 clients that presence is tracked for this field. This oneof is known as a &quot;synthetic&quot; oneof, and this field must be its sole member (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs exist in the descriptor only, and do not generate any API. Synthetic oneofs must be ordered after all &quot;real&quot; oneofs. For message fields, proto3_optional doesn&#x27;t create any semantic change, since non-repeated message fields always track presence. However it still indicates the semantic detail of whether the user wrote &quot;optional&quot; or not. This can be useful for round-tripping the .proto file. For consistency we give message fields a synthetic oneof also, even though it is not required to track presence. This is especially important because the parser can&#x27;t tell if a field is a message or an enum, so it must always create a synthetic oneof. Proto2 optional fields do not set this flag, because they already indicate optional with `LABEL_OPTIONAL`.
+                &quot;type&quot;: &quot;A String&quot;, # If type_name is set, this need not be set. If both this and type_name are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
+                &quot;typeName&quot;: &quot;A String&quot;, # For message and enum types, this is the name of the type. If the name starts with a &#x27;.&#x27;, it is fully-qualified. Otherwise, C++-like scoping rules are used to find the type (i.e. first the nested types within this message are searched, then within the parent, on up to the root namespace).
+              },
+            ],
+            &quot;name&quot;: &quot;A String&quot;,
+            &quot;nestedType&quot;: [
+              # Object with schema name: Proto2DescriptorProto
+            ],
+            &quot;oneofDecl&quot;: [
+              { # Describes a oneof.
+                &quot;name&quot;: &quot;A String&quot;,
+              },
+            ],
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # file name, relative to root of source tree
+        &quot;package&quot;: &quot;A String&quot;, # e.g. &quot;foo&quot;, &quot;foo.bar&quot;, etc.
+        &quot;syntax&quot;: &quot;A String&quot;, # The syntax of the proto file. The supported values are &quot;proto2&quot; and &quot;proto3&quot;.
+      },
+      &quot;fieldDescriptions&quot;: [ # Output only. Detailed description of each field that is part of the schema.
+        { # Provides detailed information for a particular field that is part of a PolicySchema.
+          &quot;description&quot;: &quot;A String&quot;, # Output only. The description for the field.
+          &quot;field&quot;: &quot;A String&quot;, # Output only. The name of the field for associated with this description.
+          &quot;inputConstraint&quot;: &quot;A String&quot;, # Output only. Any input constraints associated on the values for the field.
+          &quot;knownValueDescriptions&quot;: [ # Output only. If the field has a set of know values, this field will provide a description for these values.
+            { # Provides detailed information about a known value that is allowed for a particular field in a PolicySchema.
+              &quot;description&quot;: &quot;A String&quot;, # Output only. Additional description for this value.
+              &quot;value&quot;: &quot;A String&quot;, # Output only. The string represenstation of the value that can be set for the field.
+            },
+          ],
+          &quot;nestedFieldDescriptions&quot;: [ # Output only. Provides the description of the fields nested in this field, if the field is a message type that defines multiple fields.
+            # Object with schema name: GoogleChromePolicyV1PolicySchemaFieldDescription
+          ],
+        },
+      ],
+      &quot;name&quot;: &quot;A String&quot;, # Format: name=customers/{customer}/policySchemas/{schema_namespace}
+      &quot;notices&quot;: [ # Output only. Special notice messages related to setting certain values in certain fields in the schema.
+        { # Provides special notice messages related to a particular value in a field that is part of a PolicySchema.
+          &quot;acknowledgementRequired&quot;: True or False, # Output only. Whether the user needs to acknowledge the notice message before the value can be set.
+          &quot;field&quot;: &quot;A String&quot;, # Output only. The field name associated with the notice.
+          &quot;noticeMessage&quot;: &quot;A String&quot;, # Output only. The notice message associate with the value of the field.
+          &quot;noticeValue&quot;: &quot;A String&quot;, # Output only. The value of the field that has a notice. When setting the field to this value, the user may be required to acknowledge the notice message in order for the value to be set.
+        },
+      ],
+      &quot;policyDescription&quot;: &quot;A String&quot;, # Output only. Description about the policy schema for user consumption.
+      &quot;schemaName&quot;: &quot;A String&quot;, # Output only. The full qualified name of the policy schema. This value is used to fill the field `policy_schema` in PolicyValue when calling BatchInheritOrgUnitPolicies or BatchModifyOrgUnitPolicies.
+      &quot;supportUri&quot;: &quot;A String&quot;, # Output only. URI to related support article for this schema.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/chromepolicy_v1.html b/docs/dyn/chromepolicy_v1.html
new file mode 100644
index 0000000..98e3001
--- /dev/null
+++ b/docs/dyn/chromepolicy_v1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="chromepolicy_v1.html">Chrome Policy API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="chromepolicy_v1.customers.html">customers()</a></code>
+</p>
+<p class="firstline">Returns the customers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudasset_v1.v1.html b/docs/dyn/cloudasset_v1.v1.html
index 9d03a37..9c09f70 100644
--- a/docs/dyn/cloudasset_v1.v1.html
+++ b/docs/dyn/cloudasset_v1.v1.html
@@ -75,7 +75,7 @@
 <h1><a href="cloudasset_v1.html">Cloud Asset API</a> . <a href="cloudasset_v1.v1.html">v1</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#analyzeIamPolicy">analyzeIamPolicy(scope, analysisQuery_accessSelector_permissions=None, analysisQuery_accessSelector_roles=None, analysisQuery_identitySelector_identity=None, analysisQuery_options_analyzeServiceAccountImpersonation=None, analysisQuery_options_expandGroups=None, analysisQuery_options_expandResources=None, analysisQuery_options_expandRoles=None, analysisQuery_options_outputGroupEdges=None, analysisQuery_options_outputResourceEdges=None, analysisQuery_resourceSelector_fullResourceName=None, executionTimeout=None, x__xgafv=None)</a></code></p>
+  <code><a href="#analyzeIamPolicy">analyzeIamPolicy(scope, analysisQuery_accessSelector_permissions=None, analysisQuery_accessSelector_roles=None, analysisQuery_conditionContext_accessTime=None, analysisQuery_identitySelector_identity=None, analysisQuery_options_analyzeServiceAccountImpersonation=None, analysisQuery_options_expandGroups=None, analysisQuery_options_expandResources=None, analysisQuery_options_expandRoles=None, analysisQuery_options_outputGroupEdges=None, analysisQuery_options_outputResourceEdges=None, analysisQuery_resourceSelector_fullResourceName=None, executionTimeout=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Analyzes IAM policies to answer which identities have what accesses on which resources.</p>
 <p class="toc_element">
   <code><a href="#analyzeIamPolicyLongrunning">analyzeIamPolicyLongrunning(scope, body=None, x__xgafv=None)</a></code></p>
@@ -103,13 +103,14 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="analyzeIamPolicy">analyzeIamPolicy(scope, analysisQuery_accessSelector_permissions=None, analysisQuery_accessSelector_roles=None, analysisQuery_identitySelector_identity=None, analysisQuery_options_analyzeServiceAccountImpersonation=None, analysisQuery_options_expandGroups=None, analysisQuery_options_expandResources=None, analysisQuery_options_expandRoles=None, analysisQuery_options_outputGroupEdges=None, analysisQuery_options_outputResourceEdges=None, analysisQuery_resourceSelector_fullResourceName=None, executionTimeout=None, x__xgafv=None)</code>
+    <code class="details" id="analyzeIamPolicy">analyzeIamPolicy(scope, analysisQuery_accessSelector_permissions=None, analysisQuery_accessSelector_roles=None, analysisQuery_conditionContext_accessTime=None, analysisQuery_identitySelector_identity=None, analysisQuery_options_analyzeServiceAccountImpersonation=None, analysisQuery_options_expandGroups=None, analysisQuery_options_expandResources=None, analysisQuery_options_expandRoles=None, analysisQuery_options_outputGroupEdges=None, analysisQuery_options_outputResourceEdges=None, analysisQuery_resourceSelector_fullResourceName=None, executionTimeout=None, x__xgafv=None)</code>
   <pre>Analyzes IAM policies to answer which identities have what accesses on which resources.
 
 Args:
   scope: string, Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as &quot;organizations/123&quot;), a folder number (such as &quot;folders/123&quot;), a project ID (such as &quot;projects/my-project-id&quot;), or a project number (such as &quot;projects/12345&quot;). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). (required)
   analysisQuery_accessSelector_permissions: string, Optional. The permissions to appear in result. (repeated)
   analysisQuery_accessSelector_roles: string, Optional. The roles to appear in result. (repeated)
+  analysisQuery_conditionContext_accessTime: string, The hypothetical access timestamp to evaluate IAM conditions. Note that this value must not be earlier than the current time; otherwise, an INVALID_ARGUMENT error will be returned.
   analysisQuery_identitySelector_identity: string, Required. The identity appear in the form of members in [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding). The examples of supported forms are: &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;. Notice that wildcard characters (such as * and ?) are not supported. You must give a specific identity.
   analysisQuery_options_analyzeServiceAccountImpersonation: boolean, Optional. If true, the response will include access analysis from identities to resources via service account impersonation. This is a very expensive operation, because many derived queries will be executed. We highly recommend you use AssetService.AnalyzeIamPolicyLongrunning rpc instead. For example, if the request analyzes for which resources user A has permission P, and there&#x27;s an IAM policy states user A has iam.serviceAccounts.getAccessToken permission to a service account SA, and there&#x27;s another IAM policy states service account SA has permission P to a GCP folder F, then user A potentially has access to the GCP folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Another example, if the request analyzes for who has permission P to a GCP folder F, and there&#x27;s an IAM policy states user A has iam.serviceAccounts.actAs permission to a service account SA, and there&#x27;s another IAM policy states service account SA has permission P to the GCP folder F, then user A potentially has access to the GCP folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Default is false.
   analysisQuery_options_expandGroups: boolean, Optional. If true, the identities section of the result will expand any Google groups appearing in an IAM policy binding. If IamPolicyAnalysisQuery.identity_selector is specified, the identity in the result will be determined by the selector, and this flag is not allowed to set. Default is false.
@@ -139,6 +140,9 @@
           &quot;A String&quot;,
         ],
       },
+      &quot;conditionContext&quot;: { # The IAM conditions context. # Optional. The hypothetical context for IAM conditions evaluation.
+        &quot;accessTime&quot;: &quot;A String&quot;, # The hypothetical access timestamp to evaluate IAM conditions. Note that this value must not be earlier than the current time; otherwise, an INVALID_ARGUMENT error will be returned.
+      },
       &quot;identitySelector&quot;: { # Specifies an identity for which to determine resource access, based on roles assigned either directly to them or to the groups they belong to, directly or indirectly. # Optional. Specifies an identity for analysis.
         &quot;identity&quot;: &quot;A String&quot;, # Required. The identity appear in the form of members in [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding). The examples of supported forms are: &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;. Notice that wildcard characters (such as * and ?) are not supported. You must give a specific identity.
       },
@@ -169,6 +173,9 @@
                 &quot;role&quot;: &quot;A String&quot;, # The role.
               },
             ],
+            &quot;conditionEvaluation&quot;: { # The Condition evaluation. # Condition evaluation for this AccessControlList, if there is a condition defined in the above IAM policy binding.
+              &quot;evaluationValue&quot;: &quot;A String&quot;, # The evaluation result.
+            },
             &quot;resourceEdges&quot;: [ # Resource edges of the graph starting from the policy attached resource to any descendant resources. The Edge.source_node contains the full resource name of a parent resource and Edge.target_node contains the full resource name of a child resource. This field is present only if the output_resource_edges option is enabled in request.
               { # A directional edge.
                 &quot;sourceNode&quot;: &quot;A String&quot;, # The source node of the edge. For example, it could be a full resource name for a resource node or an email of an identity.
@@ -238,6 +245,9 @@
             &quot;A String&quot;,
           ],
         },
+        &quot;conditionContext&quot;: { # The IAM conditions context. # Optional. The hypothetical context for IAM conditions evaluation.
+          &quot;accessTime&quot;: &quot;A String&quot;, # The hypothetical access timestamp to evaluate IAM conditions. Note that this value must not be earlier than the current time; otherwise, an INVALID_ARGUMENT error will be returned.
+        },
         &quot;identitySelector&quot;: { # Specifies an identity for which to determine resource access, based on roles assigned either directly to them or to the groups they belong to, directly or indirectly. # Optional. Specifies an identity for analysis.
           &quot;identity&quot;: &quot;A String&quot;, # Required. The identity appear in the form of members in [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding). The examples of supported forms are: &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;. Notice that wildcard characters (such as * and ?) are not supported. You must give a specific identity.
         },
@@ -268,6 +278,9 @@
                   &quot;role&quot;: &quot;A String&quot;, # The role.
                 },
               ],
+              &quot;conditionEvaluation&quot;: { # The Condition evaluation. # Condition evaluation for this AccessControlList, if there is a condition defined in the above IAM policy binding.
+                &quot;evaluationValue&quot;: &quot;A String&quot;, # The evaluation result.
+              },
               &quot;resourceEdges&quot;: [ # Resource edges of the graph starting from the policy attached resource to any descendant resources. The Edge.source_node contains the full resource name of a parent resource and Edge.target_node contains the full resource name of a child resource. This field is present only if the output_resource_edges option is enabled in request.
                 { # A directional edge.
                   &quot;sourceNode&quot;: &quot;A String&quot;, # The source node of the edge. For example, it could be a full resource name for a resource node or an email of an identity.
@@ -349,6 +362,9 @@
         &quot;A String&quot;,
       ],
     },
+    &quot;conditionContext&quot;: { # The IAM conditions context. # Optional. The hypothetical context for IAM conditions evaluation.
+      &quot;accessTime&quot;: &quot;A String&quot;, # The hypothetical access timestamp to evaluate IAM conditions. Note that this value must not be earlier than the current time; otherwise, an INVALID_ARGUMENT error will be returned.
+    },
     &quot;identitySelector&quot;: { # Specifies an identity for which to determine resource access, based on roles assigned either directly to them or to the groups they belong to, directly or indirectly. # Optional. Specifies an identity for analysis.
       &quot;identity&quot;: &quot;A String&quot;, # Required. The identity appear in the form of members in [IAM policy binding](https://cloud.google.com/iam/reference/rest/v1/Binding). The examples of supported forms are: &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;. Notice that wildcard characters (such as * and ?) are not supported. You must give a specific identity.
     },
@@ -1492,7 +1508,7 @@
       ],
       &quot;organization&quot;: &quot;A String&quot;, # The organization that this resource belongs to, in the form of organizations/{ORGANIZATION_NUMBER}. This field is available when the resource belongs to an organization. To search against `organization`: * use a field query. Example: `organization:123` * use a free text query. Example: `123` * specify the `scope` field as this organization in your search request.
       &quot;parentAssetType&quot;: &quot;A String&quot;, # The type of this resource&#x27;s immediate parent, if there is one. To search against the `parent_asset_type`: * use a field query. Example: `parentAssetType:&quot;cloudresourcemanager.googleapis.com/Project&quot;` * use a free text query. Example: `cloudresourcemanager.googleapis.com/Project`
-      &quot;parentFullResourceName&quot;: &quot;A String&quot;, # The full resource name of this resource&#x27;s parent, if it has one.
+      &quot;parentFullResourceName&quot;: &quot;A String&quot;, # The full resource name of this resource&#x27;s parent, if it has one. To search against the `parent_full_resource_name`: * use a field query. Example: `parentFullResourceName:&quot;project-name&quot;` * use a free text query. Example: `project-name`
       &quot;project&quot;: &quot;A String&quot;, # The project that this resource belongs to, in the form of projects/{PROJECT_NUMBER}. This field is available when the resource belongs to a project. To search against `project`: * use a field query. Example: `project:12345` * use a free text query. Example: `12345` * specify the `scope` field as this project in your search request.
       &quot;state&quot;: &quot;A String&quot;, # The state of this resource. Different resources types have different state definitions that are mapped from various fields of different resource types. This field is available only when the resource&#x27;s proto contains it. Example: If the resource is an instance provided by Compute Engine, its state will include PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. See `status` definition in [API Reference](https://cloud.google.com/compute/docs/reference/rest/v1/instances). If the resource is a project provided by Cloud Resource Manager, its state will include LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED and DELETE_IN_PROGRESS. See `lifecycleState` definition in [API Reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects). To search against the `state`: * use a field query. Example: `state:RUNNING` * use a free text query. Example: `RUNNING`
       &quot;updateTime&quot;: &quot;A String&quot;, # The last update timestamp of this resource, at which the resource was last modified or deleted. The granularity is in seconds. Timestamp.nanos will always be 0. This field is available only when the resource&#x27;s proto contains it. To search against `update_time`: * use a field query (value in seconds). Example: `updateTime &lt; 1594294238`
diff --git a/docs/dyn/cloudbuild_v1.projects.builds.html b/docs/dyn/cloudbuild_v1.projects.builds.html
index 59391c4..a6e72dd 100644
--- a/docs/dyn/cloudbuild_v1.projects.builds.html
+++ b/docs/dyn/cloudbuild_v1.projects.builds.html
@@ -221,7 +221,7 @@
       },
     },
   ],
-  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
   &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
     &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
       &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -450,7 +450,7 @@
       },
     },
   ],
-  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
   &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
     &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
       &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -710,7 +710,7 @@
       },
     },
   ],
-  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
   &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
     &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
       &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -945,7 +945,7 @@
           },
         },
       ],
-      &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+      &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
       &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
         &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
           &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
diff --git a/docs/dyn/cloudbuild_v1.projects.locations.builds.html b/docs/dyn/cloudbuild_v1.projects.locations.builds.html
index a65e505..8e7244c 100644
--- a/docs/dyn/cloudbuild_v1.projects.locations.builds.html
+++ b/docs/dyn/cloudbuild_v1.projects.locations.builds.html
@@ -220,7 +220,7 @@
       },
     },
   ],
-  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
   &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
     &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
       &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -449,7 +449,7 @@
       },
     },
   ],
-  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
   &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
     &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
       &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -709,7 +709,7 @@
       },
     },
   ],
-  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
   &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
     &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
       &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -944,7 +944,7 @@
           },
         },
       ],
-      &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+      &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
       &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
         &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
           &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
diff --git a/docs/dyn/cloudbuild_v1.projects.triggers.html b/docs/dyn/cloudbuild_v1.projects.triggers.html
index 567ebb7..de23dd4 100644
--- a/docs/dyn/cloudbuild_v1.projects.triggers.html
+++ b/docs/dyn/cloudbuild_v1.projects.triggers.html
@@ -218,7 +218,7 @@
         },
       },
     ],
-    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
     &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
       &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
         &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -487,7 +487,7 @@
         },
       },
     ],
-    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
     &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
       &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
         &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -783,7 +783,7 @@
         },
       },
     ],
-    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
     &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
       &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
         &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -1064,7 +1064,7 @@
             },
           },
         ],
-        &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+        &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
         &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
           &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
             &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -1352,7 +1352,7 @@
         },
       },
     ],
-    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
     &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
       &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
         &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
@@ -1621,7 +1621,7 @@
         },
       },
     ],
-    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. This field is in beta.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account.
     &quot;source&quot;: { # Location of the source in a supported storage service. # The location of the source files to build.
       &quot;repoSource&quot;: { # Location of the source in a Google Cloud Source Repository. # If provided, get the source from this location in a Cloud Source Repository.
         &quot;branchName&quot;: &quot;A String&quot;, # Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax
diff --git a/docs/dyn/cloudchannel_v1.accounts.channelPartnerLinks.customers.html b/docs/dyn/cloudchannel_v1.accounts.channelPartnerLinks.customers.html
new file mode 100644
index 0000000..4fea37e
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.accounts.channelPartnerLinks.customers.html
@@ -0,0 +1,516 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.accounts.html">accounts</a> . <a href="cloudchannel_v1.accounts.channelPartnerLinks.html">channelPartnerLinks</a> . <a href="cloudchannel_v1.accounts.channelPartnerLinks.customers.html">customers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn't match the primary email domain. Return value: The newly created Customer resource.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the given Customer permanently and irreversibly. Possible error codes: * PERMISSION_DENIED: The account making the request does not own this customer. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * FAILED_PRECONDITION: The customer has existing entitlements. * NOT_FOUND: No Customer resource found for the name in the request.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a requested Customer resource. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer resource doesn't exist. Usually the result of an invalid name parameter. Return value: The Customer resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List Customers. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of Customers, or an empty list if there are no customers.</p>
+<p class="toc_element">
+  <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, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Customer resource for the reseller or distributor. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: No Customer resource found for the name in the request. Return value: The updated Customer resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn&#x27;t match the primary email domain. Return value: The newly created Customer resource.
+
+Args:
+  parent: string, Required. The resource name of reseller account in which to create the customer. Parent uses the format: accounts/{account_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes the given Customer permanently and irreversibly. Possible error codes: * PERMISSION_DENIED: The account making the request does not own this customer. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * FAILED_PRECONDITION: The customer has existing entitlements. * NOT_FOUND: No Customer resource found for the name in the request.
+
+Args:
+  name: string, Required. The resource name of the customer to delete. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns a requested Customer resource. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer resource doesn&#x27;t exist. Usually the result of an invalid name parameter. Return value: The Customer resource.
+
+Args:
+  name: string, Required. The resource name of the customer to retrieve. Name uses the format: accounts/{account_id}/customers/{customer_id} (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>List Customers. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of Customers, or an empty list if there are no customers.
+
+Args:
+  parent: string, Required. The resource name of the reseller account to list customers from. Parent uses the format: accounts/{account_id}. (required)
+  pageSize: integer, Optional. The maximum number of customers to return. The service may return fewer than this value. If unspecified, returns at most 10 customers. The maximum value is 50.
+  pageToken: string, Optional. A token identifying a page of results other than the first page. Obtained through ListCustomersResponse.next_page_token of the previous CloudChannelService.ListCustomers call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.ListCustomers.
+  &quot;customers&quot;: [ # The customers belonging to a reseller or distributor.
+    { # Entity representing a customer of a reseller or distributor.
+      &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+      &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+      &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+      &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+        &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+        &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+        &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+        &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+          &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+          &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+          &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+        },
+        &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+        &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+        &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+      &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+      &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+      &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+        &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+          &quot;A String&quot;,
+        ],
+        &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+        &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+        &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+        &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+        &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+          &quot;A String&quot;,
+        ],
+        &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+        &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+        &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+        &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+      },
+      &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+        &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+        &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+        &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+        &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+        &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass to ListCustomersRequest.page_token to obtain that page.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Customer resource for the reseller or distributor. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: No Customer resource found for the name in the request. Return value: The updated Customer resource.
+
+Args:
+  name: string, Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}
+
+  updateMask: string, The update mask that applies to the resource. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.accounts.channelPartnerLinks.html b/docs/dyn/cloudchannel_v1.accounts.channelPartnerLinks.html
new file mode 100644
index 0000000..244f3c2
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.accounts.channelPartnerLinks.html
@@ -0,0 +1,350 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.accounts.html">accounts</a> . <a href="cloudchannel_v1.accounts.channelPartnerLinks.html">channelPartnerLinks</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.accounts.channelPartnerLinks.customers.html">customers()</a></code>
+</p>
+<p class="firstline">Returns the customers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Initiates a channel partner link between a distributor and a reseller, or between resellers in an n-tier reseller channel. Invited partners need to follow the invite_link_uri provided in the response to accept. After accepting the invitation, a link is set up between the two parties. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * ALREADY_EXISTS: The ChannelPartnerLink sent in the request already exists. * NOT_FOUND: No Cloud Identity customer exists for provided domain. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The new ChannelPartnerLink resource.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, view=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a requested ChannelPartnerLink resource. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: ChannelPartnerLink resource not found because of an invalid channel partner link name. Return value: The ChannelPartnerLink resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, view=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List ChannelPartnerLinks belonging to a distributor. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: The list of the distributor account's ChannelPartnerLink resources.</p>
+<p class="toc_element">
+  <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, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a channel partner link. Distributors call this method to change a link's status. For example, to suspend a partner link. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Link state cannot change from invited to active or suspended. * Cannot send reseller_cloud_identity_id, invite_url, or name in update mask. * NOT_FOUND: ChannelPartnerLink resource not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The updated ChannelPartnerLink resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Initiates a channel partner link between a distributor and a reseller, or between resellers in an n-tier reseller channel. Invited partners need to follow the invite_link_uri provided in the response to accept. After accepting the invitation, a link is set up between the two parties. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * ALREADY_EXISTS: The ChannelPartnerLink sent in the request already exists. * NOT_FOUND: No Cloud Identity customer exists for provided domain. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The new ChannelPartnerLink resource.
+
+Args:
+  parent: string, Required. Create a channel partner link for the provided reseller account&#x27;s resource name. Parent uses the format: accounts/{account_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Entity representing a link between distributors and their indirect resellers in an n-tier resale channel.
+  &quot;channelPartnerCloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity info of the channel partner (IR).
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is created.
+  &quot;inviteLinkUri&quot;: &quot;A String&quot;, # Output only. URI of the web page where partner accepts the link invitation.
+  &quot;linkState&quot;: &quot;A String&quot;, # Required. State of the channel partner link.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for the channel partner link, in the format accounts/{account_id}/channelPartnerLinks/{id}.
+  &quot;publicId&quot;: &quot;A String&quot;, # Output only. Public identifier that a customer must use to generate a transfer token to move to this distributor-reseller combination.
+  &quot;resellerCloudIdentityId&quot;: &quot;A String&quot;, # Required. Cloud Identity ID of the linked reseller.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is updated.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a link between distributors and their indirect resellers in an n-tier resale channel.
+  &quot;channelPartnerCloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity info of the channel partner (IR).
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is created.
+  &quot;inviteLinkUri&quot;: &quot;A String&quot;, # Output only. URI of the web page where partner accepts the link invitation.
+  &quot;linkState&quot;: &quot;A String&quot;, # Required. State of the channel partner link.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for the channel partner link, in the format accounts/{account_id}/channelPartnerLinks/{id}.
+  &quot;publicId&quot;: &quot;A String&quot;, # Output only. Public identifier that a customer must use to generate a transfer token to move to this distributor-reseller combination.
+  &quot;resellerCloudIdentityId&quot;: &quot;A String&quot;, # Required. Cloud Identity ID of the linked reseller.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, view=None, x__xgafv=None)</code>
+  <pre>Returns a requested ChannelPartnerLink resource. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: ChannelPartnerLink resource not found because of an invalid channel partner link name. Return value: The ChannelPartnerLink resource.
+
+Args:
+  name: string, Required. The resource name of the channel partner link to retrieve. Name uses the format: accounts/{account_id}/channelPartnerLinks/{id} where {id} is the Cloud Identity ID of the partner. (required)
+  view: string, Optional. The level of granularity the ChannelPartnerLink will display.
+    Allowed values
+      UNSPECIFIED - The default / unset value. The API will default to the BASIC view.
+      BASIC - Includes all fields except the ChannelPartnerLink.channel_partner_cloud_identity_info.
+      FULL - Includes all fields.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a link between distributors and their indirect resellers in an n-tier resale channel.
+  &quot;channelPartnerCloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity info of the channel partner (IR).
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is created.
+  &quot;inviteLinkUri&quot;: &quot;A String&quot;, # Output only. URI of the web page where partner accepts the link invitation.
+  &quot;linkState&quot;: &quot;A String&quot;, # Required. State of the channel partner link.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for the channel partner link, in the format accounts/{account_id}/channelPartnerLinks/{id}.
+  &quot;publicId&quot;: &quot;A String&quot;, # Output only. Public identifier that a customer must use to generate a transfer token to move to this distributor-reseller combination.
+  &quot;resellerCloudIdentityId&quot;: &quot;A String&quot;, # Required. Cloud Identity ID of the linked reseller.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, view=None, x__xgafv=None)</code>
+  <pre>List ChannelPartnerLinks belonging to a distributor. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: The list of the distributor account&#x27;s ChannelPartnerLink resources.
+
+Args:
+  parent: string, Required. The resource name of the reseller account for listing channel partner links. Parent uses the format: accounts/{account_id} (required)
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, server will pick a default size (25). The maximum value is 200; the server will coerce values above 200.
+  pageToken: string, Optional. A token for a page of results other than the first page. Obtained using ListChannelPartnerLinksResponse.next_page_token of the previous CloudChannelService.ListChannelPartnerLinks call.
+  view: string, Optional. The level of granularity the ChannelPartnerLink will display.
+    Allowed values
+      UNSPECIFIED - The default / unset value. The API will default to the BASIC view.
+      BASIC - Includes all fields except the ChannelPartnerLink.channel_partner_cloud_identity_info.
+      FULL - Includes all fields.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.ListChannelPartnerLinks.
+  &quot;channelPartnerLinks&quot;: [ # The Channel partner links for a reseller.
+    { # Entity representing a link between distributors and their indirect resellers in an n-tier resale channel.
+      &quot;channelPartnerCloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity info of the channel partner (IR).
+        &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+        &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+        &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+        &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+          &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+          &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+          &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+        },
+        &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+        &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+        &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is created.
+      &quot;inviteLinkUri&quot;: &quot;A String&quot;, # Output only. URI of the web page where partner accepts the link invitation.
+      &quot;linkState&quot;: &quot;A String&quot;, # Required. State of the channel partner link.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for the channel partner link, in the format accounts/{account_id}/channelPartnerLinks/{id}.
+      &quot;publicId&quot;: &quot;A String&quot;, # Output only. Public identifier that a customer must use to generate a transfer token to move to this distributor-reseller combination.
+      &quot;resellerCloudIdentityId&quot;: &quot;A String&quot;, # Required. Cloud Identity ID of the linked reseller.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass to ListChannelPartnerLinksRequest.page_token to obtain that page.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, x__xgafv=None)</code>
+  <pre>Updates a channel partner link. Distributors call this method to change a link&#x27;s status. For example, to suspend a partner link. You must be a distributor to call this method. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Link state cannot change from invited to active or suspended. * Cannot send reseller_cloud_identity_id, invite_url, or name in update mask. * NOT_FOUND: ChannelPartnerLink resource not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The updated ChannelPartnerLink resource.
+
+Args:
+  name: string, Required. The resource name of the channel partner link to cancel. Name uses the format: accounts/{account_id}/channelPartnerLinks/{id} where {id} is the Cloud Identity ID of the partner. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.UpdateChannelPartnerLink
+  &quot;channelPartnerLink&quot;: { # Entity representing a link between distributors and their indirect resellers in an n-tier resale channel. # Required. The channel partner link to update. Only channel_partner_link.link_state is allowed for updates.
+    &quot;channelPartnerCloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity info of the channel partner (IR).
+      &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+      &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+      &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+      &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+        &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+        &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+        &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+      },
+      &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+      &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+      &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+    },
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is created.
+    &quot;inviteLinkUri&quot;: &quot;A String&quot;, # Output only. URI of the web page where partner accepts the link invitation.
+    &quot;linkState&quot;: &quot;A String&quot;, # Required. State of the channel partner link.
+    &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for the channel partner link, in the format accounts/{account_id}/channelPartnerLinks/{id}.
+    &quot;publicId&quot;: &quot;A String&quot;, # Output only. Public identifier that a customer must use to generate a transfer token to move to this distributor-reseller combination.
+    &quot;resellerCloudIdentityId&quot;: &quot;A String&quot;, # Required. Cloud Identity ID of the linked reseller.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is updated.
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # Required. The update mask that applies to the resource. The only allowable value for an update mask is channel_partner_link.link_state.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a link between distributors and their indirect resellers in an n-tier resale channel.
+  &quot;channelPartnerCloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity info of the channel partner (IR).
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is created.
+  &quot;inviteLinkUri&quot;: &quot;A String&quot;, # Output only. URI of the web page where partner accepts the link invitation.
+  &quot;linkState&quot;: &quot;A String&quot;, # Required. State of the channel partner link.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for the channel partner link, in the format accounts/{account_id}/channelPartnerLinks/{id}.
+  &quot;publicId&quot;: &quot;A String&quot;, # Output only. Public identifier that a customer must use to generate a transfer token to move to this distributor-reseller combination.
+  &quot;resellerCloudIdentityId&quot;: &quot;A String&quot;, # Required. Cloud Identity ID of the linked reseller.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp of when the channel partner link is updated.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.accounts.customers.entitlements.html b/docs/dyn/cloudchannel_v1.accounts.customers.entitlements.html
new file mode 100644
index 0000000..46fbced
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.accounts.customers.entitlements.html
@@ -0,0 +1,703 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.accounts.html">accounts</a> . <a href="cloudchannel_v1.accounts.customers.html">customers</a> . <a href="cloudchannel_v1.accounts.customers.entitlements.html">entitlements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#activate">activate(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Activates a previously suspended entitlement. Entitlements suspended for pending ToS acceptance can't be activated using this method. An entitlement activation is a long-running operation and it updates the state of the customer entitlement. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * SUSPENSION_NOT_RESELLER_INITIATED: Can only activate reseller-initiated suspensions and entitlements that have accepted the TOS. * NOT_SUSPENDED: Can only activate suspended entitlements not in an ACTIVE state. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Cancels a previously fulfilled entitlement. An entitlement cancellation is a long-running operation. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * FAILED_PRECONDITION: There are Google Cloud projects linked to the Google Cloud entitlement's Cloud Billing subaccount. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * DELETION_TYPE_NOT_ALLOWED: Cancel is only allowed for Google Workspace add-ons, or entitlements for Google Cloud's development platform. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The response will contain google.protobuf.Empty on success. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#changeOffer">changeOffer(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Offer for an existing customer entitlement. An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Offer or Entitlement resource not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#changeParameters">changeParameters(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Change parameters of the entitlement. An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. For example, the number of seats being changed is greater than the allowed number of max seats, or decreasing seats for a commitment based plan. * NOT_FOUND: Entitlement resource not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#changeRenewalSettings">changeRenewalSettings(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the renewal settings for an existing customer entitlement. An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a commitment plan. Can't enable or disable renewals for non-commitment plans. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates an entitlement for a customer. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * There is already a customer entitlement for a SKU from the same product family. * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact Google Channel support for further troubleshooting. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: * The SKU was already purchased for the customer. * The customer's primary email already exists. Retry after changing the customer's primary contact email. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The domain required for purchasing a SKU has not been verified. * A pre-requisite SKU required to purchase an Add-On SKU is missing. For example, Google Workspace Business Starter is required to purchase Vault or Drive. * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a requested Entitlement resource. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer entitlement was not found. Return value: The requested Entitlement resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Entitlements belonging to a customer. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: A list of the customer's Entitlements.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#startPaidService">startPaidService(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts paid service for a trial entitlement. Starts paid service for a trial entitlement immediately. This method is only applicable if a plan is set up for a trial entitlement but has some trial days remaining. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * FAILED_PRECONDITION/NOT_IN_TRIAL: This method only works for entitlement on trial plans. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#suspend">suspend(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Suspends a previously fulfilled entitlement. An entitlement suspension is a long-running operation. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * NOT_ACTIVE: Entitlement is not active. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="activate">activate(name, body=None, x__xgafv=None)</code>
+  <pre>Activates a previously suspended entitlement. Entitlements suspended for pending ToS acceptance can&#x27;t be activated using this method. An entitlement activation is a long-running operation and it updates the state of the customer entitlement. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * SUSPENSION_NOT_RESELLER_INITIATED: Can only activate reseller-initiated suspensions and entitlements that have accepted the TOS. * NOT_SUSPENDED: Can only activate suspended entitlements not in an ACTIVE state. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The resource name of the entitlement to activate. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ActivateEntitlement.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Cancels a previously fulfilled entitlement. An entitlement cancellation is a long-running operation. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * FAILED_PRECONDITION: There are Google Cloud projects linked to the Google Cloud entitlement&#x27;s Cloud Billing subaccount. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * DELETION_TYPE_NOT_ALLOWED: Cancel is only allowed for Google Workspace add-ons, or entitlements for Google Cloud&#x27;s development platform. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The response will contain google.protobuf.Empty on success. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The resource name of the entitlement to cancel. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.CancelEntitlement.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="changeOffer">changeOffer(name, body=None, x__xgafv=None)</code>
+  <pre>Updates the Offer for an existing customer entitlement. An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Offer or Entitlement resource not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The resource name of the entitlement to update. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ChangeOffer.
+  &quot;offer&quot;: &quot;A String&quot;, # Required. New Offer. Format: accounts/{account_id}/offers/{offer_id}.
+  &quot;parameters&quot;: [ # Optional. Parameters needed to purchase the Offer.
+    { # Definition for extended entitlement parameters.
+      &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+      &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+      &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+        &quot;boolValue&quot;: True or False, # Represents a boolean value.
+        &quot;doubleValue&quot;: 3.14, # Represents a double value.
+        &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+        &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+        &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+      },
+    },
+  ],
+  &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. Purchase order id provided by the reseller.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="changeParameters">changeParameters(name, body=None, x__xgafv=None)</code>
+  <pre>Change parameters of the entitlement. An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. For example, the number of seats being changed is greater than the allowed number of max seats, or decreasing seats for a commitment based plan. * NOT_FOUND: Entitlement resource not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The name of the entitlement to update. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ChangeParametersRequest.
+  &quot;parameters&quot;: [ # Required. Entitlement parameters to update. You can only change editable parameters.
+    { # Definition for extended entitlement parameters.
+      &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+      &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+      &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+        &quot;boolValue&quot;: True or False, # Represents a boolean value.
+        &quot;doubleValue&quot;: 3.14, # Represents a double value.
+        &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+        &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+        &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+      },
+    },
+  ],
+  &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. Purchase order ID provided by the reseller.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="changeRenewalSettings">changeRenewalSettings(name, body=None, x__xgafv=None)</code>
+  <pre>Updates the renewal settings for an existing customer entitlement. An entitlement update is a long-running operation and it updates the entitlement as a result of fulfillment. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a commitment plan. Can&#x27;t enable or disable renewals for non-commitment plans. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The name of the entitlement to update. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ChangeRenewalSettings.
+  &quot;renewalSettings&quot;: { # Renewal settings for renewable Offers. # Required. New renewal settings.
+    &quot;enableRenewal&quot;: True or False, # If false, the plan will be completed at the end date.
+    &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+      &quot;duration&quot;: 42, # Total duration of Period Type defined.
+      &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+    },
+    &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+    &quot;resizeUnitCount&quot;: True or False, # If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.
+  },
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates an entitlement for a customer. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * There is already a customer entitlement for a SKU from the same product family. * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact Google Channel support for further troubleshooting. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: * The SKU was already purchased for the customer. * The customer&#x27;s primary email already exists. Retry after changing the customer&#x27;s primary contact email. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The domain required for purchasing a SKU has not been verified. * A pre-requisite SKU required to purchase an Add-On SKU is missing. For example, Google Workspace Business Starter is required to purchase Vault or Drive. * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  parent: string, Required. The resource name of the reseller&#x27;s customer account in which to create the entitlement. Parent uses the format: accounts/{account_id}/customers/{customer_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.CreateEntitlement
+  &quot;entitlement&quot;: { # An entitlement is a representation of a customer&#x27;s ability to use a service. # Required. The entitlement to create.
+    &quot;associationInfo&quot;: { # Association links that an entitlement has to other entitlements. # Association information to other entitlements.
+      &quot;baseEntitlement&quot;: &quot;A String&quot;, # The name of the base entitlement, for which this entitlement is an add-on.
+    },
+    &quot;commitmentSettings&quot;: { # Commitment settings for commitment-based offers. # Commitment settings for a commitment-based Offer. Required for commitment based offers.
+      &quot;endTime&quot;: &quot;A String&quot;, # Output only. Commitment end timestamp.
+      &quot;renewalSettings&quot;: { # Renewal settings for renewable Offers. # Optional. Renewal settings applicable for a commitment-based Offer.
+        &quot;enableRenewal&quot;: True or False, # If false, the plan will be completed at the end date.
+        &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+          &quot;duration&quot;: 42, # Total duration of Period Type defined.
+          &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+        },
+        &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+        &quot;resizeUnitCount&quot;: True or False, # If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.
+      },
+      &quot;startTime&quot;: &quot;A String&quot;, # Output only. Commitment start timestamp.
+    },
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is created.
+    &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of an entitlement in the form: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}.
+    &quot;offer&quot;: &quot;A String&quot;, # Required. The offer resource name for which the entitlement is to be created. Takes the form: accounts/{account_id}/offers/{offer_id}.
+    &quot;parameters&quot;: [ # Extended entitlement parameters. When creating an entitlement, valid parameters&#x27; names and values are defined in the offer&#x27;s parameter definitions.
+      { # Definition for extended entitlement parameters.
+        &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+        &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+        &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+          &quot;boolValue&quot;: True or False, # Represents a boolean value.
+          &quot;doubleValue&quot;: 3.14, # Represents a double value.
+          &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+          &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+          &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+        },
+      },
+    ],
+    &quot;provisionedService&quot;: { # Service provisioned for an entitlement. # Output only. Service provisioning details for the entitlement.
+      &quot;productId&quot;: &quot;A String&quot;, # Output only. The product pertaining to the provisioning resource as specified in the Offer.
+      &quot;provisioningId&quot;: &quot;A String&quot;, # Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the underlying Subscription ID.
+      &quot;skuId&quot;: &quot;A String&quot;, # Output only. The SKU pertaining to the provisioning resource as specified in the Offer.
+    },
+    &quot;provisioningState&quot;: &quot;A String&quot;, # Output only. Current provisioning state of the entitlement.
+    &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+    &quot;suspensionReasons&quot;: [ # Output only. Enumerable of all current suspension reasons for an entitlement.
+      &quot;A String&quot;,
+    ],
+    &quot;trialSettings&quot;: { # Settings for trial offers. # Output only. Settings for trial offers.
+      &quot;endTime&quot;: &quot;A String&quot;, # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example [Epoch converter](https://www.epochconverter.com).
+      &quot;trial&quot;: True or False, # Determines if the entitlement is in a trial or not: * `true` - The entitlement is in trial. * `false` - The entitlement is not in trial.
+    },
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is updated.
+  },
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns a requested Entitlement resource. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer entitlement was not found. Return value: The requested Entitlement resource.
+
+Args:
+  name: string, Required. The resource name of the entitlement to retrieve. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An entitlement is a representation of a customer&#x27;s ability to use a service.
+  &quot;associationInfo&quot;: { # Association links that an entitlement has to other entitlements. # Association information to other entitlements.
+    &quot;baseEntitlement&quot;: &quot;A String&quot;, # The name of the base entitlement, for which this entitlement is an add-on.
+  },
+  &quot;commitmentSettings&quot;: { # Commitment settings for commitment-based offers. # Commitment settings for a commitment-based Offer. Required for commitment based offers.
+    &quot;endTime&quot;: &quot;A String&quot;, # Output only. Commitment end timestamp.
+    &quot;renewalSettings&quot;: { # Renewal settings for renewable Offers. # Optional. Renewal settings applicable for a commitment-based Offer.
+      &quot;enableRenewal&quot;: True or False, # If false, the plan will be completed at the end date.
+      &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+        &quot;duration&quot;: 42, # Total duration of Period Type defined.
+        &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+      },
+      &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+      &quot;resizeUnitCount&quot;: True or False, # If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.
+    },
+    &quot;startTime&quot;: &quot;A String&quot;, # Output only. Commitment start timestamp.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is created.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of an entitlement in the form: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}.
+  &quot;offer&quot;: &quot;A String&quot;, # Required. The offer resource name for which the entitlement is to be created. Takes the form: accounts/{account_id}/offers/{offer_id}.
+  &quot;parameters&quot;: [ # Extended entitlement parameters. When creating an entitlement, valid parameters&#x27; names and values are defined in the offer&#x27;s parameter definitions.
+    { # Definition for extended entitlement parameters.
+      &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+      &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+      &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+        &quot;boolValue&quot;: True or False, # Represents a boolean value.
+        &quot;doubleValue&quot;: 3.14, # Represents a double value.
+        &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+        &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+        &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+      },
+    },
+  ],
+  &quot;provisionedService&quot;: { # Service provisioned for an entitlement. # Output only. Service provisioning details for the entitlement.
+    &quot;productId&quot;: &quot;A String&quot;, # Output only. The product pertaining to the provisioning resource as specified in the Offer.
+    &quot;provisioningId&quot;: &quot;A String&quot;, # Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the underlying Subscription ID.
+    &quot;skuId&quot;: &quot;A String&quot;, # Output only. The SKU pertaining to the provisioning resource as specified in the Offer.
+  },
+  &quot;provisioningState&quot;: &quot;A String&quot;, # Output only. Current provisioning state of the entitlement.
+  &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+  &quot;suspensionReasons&quot;: [ # Output only. Enumerable of all current suspension reasons for an entitlement.
+    &quot;A String&quot;,
+  ],
+  &quot;trialSettings&quot;: { # Settings for trial offers. # Output only. Settings for trial offers.
+    &quot;endTime&quot;: &quot;A String&quot;, # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example [Epoch converter](https://www.epochconverter.com).
+    &quot;trial&quot;: True or False, # Determines if the entitlement is in a trial or not: * `true` - The entitlement is in trial. * `false` - The entitlement is not in trial.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Entitlements belonging to a customer. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: A list of the customer&#x27;s Entitlements.
+
+Args:
+  parent: string, Required. The resource name of the reseller&#x27;s customer account to list entitlements for. Parent uses the format: accounts/{account_id}/customers/{customer_id} (required)
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, return at most 50 entitlements. The maximum value is 100; the server will coerce values above 100.
+  pageToken: string, Optional. A token for a page of results other than the first page. Obtained using ListEntitlementsResponse.next_page_token of the previous CloudChannelService.ListEntitlements call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.ListEntitlements.
+  &quot;entitlements&quot;: [ # The reseller customer&#x27;s entitlements.
+    { # An entitlement is a representation of a customer&#x27;s ability to use a service.
+      &quot;associationInfo&quot;: { # Association links that an entitlement has to other entitlements. # Association information to other entitlements.
+        &quot;baseEntitlement&quot;: &quot;A String&quot;, # The name of the base entitlement, for which this entitlement is an add-on.
+      },
+      &quot;commitmentSettings&quot;: { # Commitment settings for commitment-based offers. # Commitment settings for a commitment-based Offer. Required for commitment based offers.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. Commitment end timestamp.
+        &quot;renewalSettings&quot;: { # Renewal settings for renewable Offers. # Optional. Renewal settings applicable for a commitment-based Offer.
+          &quot;enableRenewal&quot;: True or False, # If false, the plan will be completed at the end date.
+          &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+          &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+          &quot;resizeUnitCount&quot;: True or False, # If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.
+        },
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. Commitment start timestamp.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is created.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of an entitlement in the form: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}.
+      &quot;offer&quot;: &quot;A String&quot;, # Required. The offer resource name for which the entitlement is to be created. Takes the form: accounts/{account_id}/offers/{offer_id}.
+      &quot;parameters&quot;: [ # Extended entitlement parameters. When creating an entitlement, valid parameters&#x27; names and values are defined in the offer&#x27;s parameter definitions.
+        { # Definition for extended entitlement parameters.
+          &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+          &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+          &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+            &quot;boolValue&quot;: True or False, # Represents a boolean value.
+            &quot;doubleValue&quot;: 3.14, # Represents a double value.
+            &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+            &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+            &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+          },
+        },
+      ],
+      &quot;provisionedService&quot;: { # Service provisioned for an entitlement. # Output only. Service provisioning details for the entitlement.
+        &quot;productId&quot;: &quot;A String&quot;, # Output only. The product pertaining to the provisioning resource as specified in the Offer.
+        &quot;provisioningId&quot;: &quot;A String&quot;, # Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the underlying Subscription ID.
+        &quot;skuId&quot;: &quot;A String&quot;, # Output only. The SKU pertaining to the provisioning resource as specified in the Offer.
+      },
+      &quot;provisioningState&quot;: &quot;A String&quot;, # Output only. Current provisioning state of the entitlement.
+      &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      &quot;suspensionReasons&quot;: [ # Output only. Enumerable of all current suspension reasons for an entitlement.
+        &quot;A String&quot;,
+      ],
+      &quot;trialSettings&quot;: { # Settings for trial offers. # Output only. Settings for trial offers.
+        &quot;endTime&quot;: &quot;A String&quot;, # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example [Epoch converter](https://www.epochconverter.com).
+        &quot;trial&quot;: True or False, # Determines if the entitlement is in a trial or not: * `true` - The entitlement is in trial. * `false` - The entitlement is not in trial.
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to list the next page of results. Pass to ListEntitlementsRequest.page_token to obtain that page.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="startPaidService">startPaidService(name, body=None, x__xgafv=None)</code>
+  <pre>Starts paid service for a trial entitlement. Starts paid service for a trial entitlement immediately. This method is only applicable if a plan is set up for a trial entitlement but has some trial days remaining. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * FAILED_PRECONDITION/NOT_IN_TRIAL: This method only works for entitlement on trial plans. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The name of the entitlement to start a paid service for. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.StartPaidService.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="suspend">suspend(name, body=None, x__xgafv=None)</code>
+  <pre>Suspends a previously fulfilled entitlement. An entitlement suspension is a long-running operation. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: Entitlement resource not found. * NOT_ACTIVE: Entitlement is not active. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  name: string, Required. The resource name of the entitlement to suspend. Name uses the format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.SuspendEntitlement.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.accounts.customers.html b/docs/dyn/cloudchannel_v1.accounts.customers.html
new file mode 100644
index 0000000..a508f8d
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.accounts.customers.html
@@ -0,0 +1,1068 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.accounts.html">accounts</a> . <a href="cloudchannel_v1.accounts.customers.html">customers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.accounts.customers.entitlements.html">entitlements()</a></code>
+</p>
+<p class="firstline">Returns the entitlements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn't match the primary email domain. Return value: The newly created Customer resource.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes the given Customer permanently and irreversibly. Possible error codes: * PERMISSION_DENIED: The account making the request does not own this customer. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * FAILED_PRECONDITION: The customer has existing entitlements. * NOT_FOUND: No Customer resource found for the name in the request.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns a requested Customer resource. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer resource doesn't exist. Usually the result of an invalid name parameter. Return value: The Customer resource.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List Customers. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of Customers, or an empty list if there are no customers.</p>
+<p class="toc_element">
+  <code><a href="#listPurchasableOffers">listPurchasableOffers(customer, changeOfferPurchase_entitlement=None, changeOfferPurchase_newSku=None, createEntitlementPurchase_sku=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the following: * Offers that you can purchase for a customer. * Offers that you can change for an entitlement. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller * INVALID_ARGUMENT: Required request parameters are missing or invalid.</p>
+<p class="toc_element">
+  <code><a href="#listPurchasableOffers_next">listPurchasableOffers_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#listPurchasableSkus">listPurchasableSkus(customer, changeOfferPurchase_changeType=None, changeOfferPurchase_entitlement=None, createEntitlementPurchase_product=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the following: * SKUs that you can purchase for a customer * SKUs that you can upgrade or downgrade for an entitlement. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid.</p>
+<p class="toc_element">
+  <code><a href="#listPurchasableSkus_next">listPurchasableSkus_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Customer resource for the reseller or distributor. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: No Customer resource found for the name in the request. Return value: The updated Customer resource.</p>
+<p class="toc_element">
+  <code><a href="#provisionCloudIdentity">provisionCloudIdentity(customer, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Cloud Identity for the given customer using the customer's information, or the information provided here. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer was not found. * ALREADY_EXISTS: The customer's primary email already exists. Retry after changing the customer's primary contact email. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata contains an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#transferEntitlements">transferEntitlements(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Transfers customer entitlements to new reseller. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: The SKU was already transferred for the customer. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The SKU requires domain verification to transfer, but the domain is not verified. * An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic). * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * Specify all transferring entitlements. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.</p>
+<p class="toc_element">
+  <code><a href="#transferEntitlementsToGoogle">transferEntitlementsToGoogle(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Transfers customer entitlements from their current reseller to Google. Possible error codes: * PERMISSION_DENIED: The customer doesn't belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: The SKU was already transferred for the customer. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The SKU requires domain verification to transfer, but the domain is not verified. * An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic). * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The response will contain google.protobuf.Empty on success. The Operation metadata will contain an instance of OperationMetadata.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a new Customer resource under the reseller or distributor account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: * Required request parameters are missing or invalid. * Domain field value doesn&#x27;t match the primary email domain. Return value: The newly created Customer resource.
+
+Args:
+  parent: string, Required. The resource name of reseller account in which to create the customer. Parent uses the format: accounts/{account_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes the given Customer permanently and irreversibly. Possible error codes: * PERMISSION_DENIED: The account making the request does not own this customer. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * FAILED_PRECONDITION: The customer has existing entitlements. * NOT_FOUND: No Customer resource found for the name in the request.
+
+Args:
+  name: string, Required. The resource name of the customer to delete. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Returns a requested Customer resource. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer resource doesn&#x27;t exist. Usually the result of an invalid name parameter. Return value: The Customer resource.
+
+Args:
+  name: string, Required. The resource name of the customer to retrieve. Name uses the format: accounts/{account_id}/customers/{customer_id} (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>List Customers. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of Customers, or an empty list if there are no customers.
+
+Args:
+  parent: string, Required. The resource name of the reseller account to list customers from. Parent uses the format: accounts/{account_id}. (required)
+  pageSize: integer, Optional. The maximum number of customers to return. The service may return fewer than this value. If unspecified, returns at most 10 customers. The maximum value is 50.
+  pageToken: string, Optional. A token identifying a page of results other than the first page. Obtained through ListCustomersResponse.next_page_token of the previous CloudChannelService.ListCustomers call.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.ListCustomers.
+  &quot;customers&quot;: [ # The customers belonging to a reseller or distributor.
+    { # Entity representing a customer of a reseller or distributor.
+      &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+      &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+      &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+      &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+        &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+        &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+        &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+        &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+          &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+          &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+          &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+        },
+        &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+        &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+        &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+      &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+      &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+      &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+        &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+          &quot;A String&quot;,
+        ],
+        &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+        &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+        &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+        &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+        &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+          &quot;A String&quot;,
+        ],
+        &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+        &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+        &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+        &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+      },
+      &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+        &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+        &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+        &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+        &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+        &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass to ListCustomersRequest.page_token to obtain that page.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listPurchasableOffers">listPurchasableOffers(customer, changeOfferPurchase_entitlement=None, changeOfferPurchase_newSku=None, createEntitlementPurchase_sku=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the following: * Offers that you can purchase for a customer. * Offers that you can change for an entitlement. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+
+Args:
+  customer: string, Required. The resource name of the customer to list Offers for. Format: accounts/{account_id}/customers/{customer_id}. (required)
+  changeOfferPurchase_entitlement: string, Required. Resource name of the entitlement. Format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+  changeOfferPurchase_newSku: string, Optional. Resource name of the new target SKU. Provide this SKU when upgrading or downgrading an entitlement. Format: products/{product_id}/skus/{sku_id}
+  createEntitlementPurchase_sku: string, Required. SKU that the result should be restricted to. Format: products/{product_id}/skus/{sku_id}.
+  languageCode: string, Optional. The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;.
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 Offers. The maximum value is 1000; the server will coerce values above 1000.
+  pageToken: string, Optional. A token for a page of results other than the first page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListPurchasableOffers.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results.
+  &quot;purchasableOffers&quot;: [ # The list of Offers requested.
+    { # Offer that you can purchase for a customer. This is used in the ListPurchasableOffer API response.
+      &quot;offer&quot;: { # Represents an offer made to resellers for purchase. An offer is associated with a Sku, has a plan for payment, a price, and defines the constraints for buying. # Offer.
+        &quot;constraints&quot;: { # Represents the constraints for buying the Offer. # Constraints on transacting the Offer.
+          &quot;customerConstraints&quot;: { # Represents constraints required to purchase the Offer for a customer. # Represents constraints required to purchase the Offer for a customer.
+            &quot;allowedCustomerTypes&quot;: [ # Allowed Customer Type.
+              &quot;A String&quot;,
+            ],
+            &quot;allowedRegions&quot;: [ # Allowed geographical regions of the customer.
+              &quot;A String&quot;,
+            ],
+            &quot;promotionalOrderTypes&quot;: [ # Allowed Promotional Order Type. Present for Promotional offers.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. End of the Offer validity time.
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the Offer.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Offer. Format: accounts/{account_id}/offers/{offer_id}
+        &quot;parameterDefinitions&quot;: [ # Parameters required to use current Offer to purchase.
+          { # Parameter&#x27;s definition. Specifies what parameter is required to use the current Offer to purchase.
+            &quot;allowedValues&quot;: [ # If not empty, parameter values must be drawn from this list. For example, [us-west1, us-west2, ...] Applicable to STRING parameter type.
+              { # Data type and value of a parameter.
+                &quot;boolValue&quot;: True or False, # Represents a boolean value.
+                &quot;doubleValue&quot;: 3.14, # Represents a double value.
+                &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+                &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                },
+                &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+              },
+            ],
+            &quot;maxValue&quot;: { # Data type and value of a parameter. # Maximum value of the parameter, if applicable. Inclusive. For example, maximum seats when purchasing Google Workspace Business Standard. Applicable to INT64 and DOUBLE parameter types.
+              &quot;boolValue&quot;: True or False, # Represents a boolean value.
+              &quot;doubleValue&quot;: 3.14, # Represents a double value.
+              &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+              &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+              &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+            },
+            &quot;minValue&quot;: { # Data type and value of a parameter. # Minimal value of the parameter, if applicable. Inclusive. For example, minimal commitment when purchasing Anthos is 0.01. Applicable to INT64 and DOUBLE parameter types.
+              &quot;boolValue&quot;: True or False, # Represents a boolean value.
+              &quot;doubleValue&quot;: 3.14, # Represents a double value.
+              &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+              &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+              &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+            },
+            &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+            &quot;optional&quot;: True or False, # If set to true, parameter is optional to purchase this Offer.
+            &quot;parameterType&quot;: &quot;A String&quot;, # Data type of the parameter. Minimal value, Maximum value and allowed values will use specified data type here.
+          },
+        ],
+        &quot;plan&quot;: { # The payment plan for the Offer. Describes how to make a payment. # Describes the payment plan for the Offer.
+          &quot;billingAccount&quot;: &quot;A String&quot;, # Reseller Billing account to charge after an offer transaction. Only present for Google Cloud Platform offers.
+          &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+          &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+          &quot;paymentType&quot;: &quot;A String&quot;, # Specifies when the payment needs to happen.
+          &quot;trialPeriod&quot;: { # Represents period in days/months/years. # Present for Offers with a trial period. For trial-only Offers, a paid service needs to start before the trial period ends for continued service. For Regular Offers with a trial period, the regular pricing goes into effect when trial period ends, or if paid service is started before the end of the trial period.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+        },
+        &quot;priceByResources&quot;: [ # Price for each monetizable resource type.
+          { # Represents price by resource type.
+            &quot;price&quot;: { # Represents the price of the Offer. # Price of the Offer. Present if there are no price phases.
+              &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+              },
+              &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+              &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+              },
+              &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+            },
+            &quot;pricePhases&quot;: [ # Specifies the price by time range.
+              { # Specifies the price by the duration of months. For example, a 20% discount for the first six months, then a 10% discount starting on the seventh month.
+                &quot;firstPeriod&quot;: 42, # Defines first period for the phase.
+                &quot;lastPeriod&quot;: 42, # Defines first period for the phase.
+                &quot;periodType&quot;: &quot;A String&quot;, # Defines the phase period type.
+                &quot;price&quot;: { # Represents the price of the Offer. # Price of the phase. Present if there are no price tiers.
+                  &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                  },
+                  &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+                  &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                  },
+                  &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+                },
+                &quot;priceTiers&quot;: [ # Price by the resource tiers.
+                  { # Defines price at resource tier level. For example, an offer with following definition : * Tier 1: Provide 25% discount for all seats between 1 and 25. * Tier 2: Provide 10% discount for all seats between 26 and 100. * Tier 3: Provide flat 15% discount for all seats above 100. Each of these tiers is represented as a PriceTier.
+                    &quot;firstResource&quot;: 42, # First resource for which the tier price applies.
+                    &quot;lastResource&quot;: 42, # Last resource for which the tier price applies.
+                    &quot;price&quot;: { # Represents the price of the Offer. # Price of the tier.
+                      &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                      },
+                      &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+                      &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                      },
+                      &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+                    },
+                  },
+                ],
+              },
+            ],
+            &quot;resourceType&quot;: &quot;A String&quot;, # Resource Type. Example: SEAT
+          },
+        ],
+        &quot;sku&quot;: { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs. # SKU the offer is associated with.
+          &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+            &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+              &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+              &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+              &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+            &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+          &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+            &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+              &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+                &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+                &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+                &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+              },
+              &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+              &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+            },
+            &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+          },
+        },
+        &quot;startTime&quot;: &quot;A String&quot;, # Start of the Offer validity time.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listPurchasableOffers_next">listPurchasableOffers_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="listPurchasableSkus">listPurchasableSkus(customer, changeOfferPurchase_changeType=None, changeOfferPurchase_entitlement=None, createEntitlementPurchase_product=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the following: * SKUs that you can purchase for a customer * SKUs that you can upgrade or downgrade for an entitlement. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+
+Args:
+  customer: string, Required. The resource name of the customer to list SKUs for. Format: accounts/{account_id}/customers/{customer_id}. (required)
+  changeOfferPurchase_changeType: string, Required. Change Type for the entitlement.
+    Allowed values
+      CHANGE_TYPE_UNSPECIFIED - Not used.
+      UPGRADE - SKU is an upgrade on the current entitlement.
+      DOWNGRADE - SKU is a downgrade on the current entitlement.
+  changeOfferPurchase_entitlement: string, Required. Resource name of the entitlement. Format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+  createEntitlementPurchase_product: string, Required. List SKUs belonging to this Product. Format: products/{product_id}. Supports products/- to retrieve SKUs for all products.
+  languageCode: string, Optional. The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;.
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 SKUs. The maximum value is 1000; the server will coerce values above 1000.
+  pageToken: string, Optional. A token for a page of results other than the first page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListPurchasableSkus.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results.
+  &quot;purchasableSkus&quot;: [ # The list of SKUs requested.
+    { # SKU that you can purchase. This is used in ListPurchasableSku API response.
+      &quot;sku&quot;: { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs. # SKU
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+        &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+          &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+            &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+              &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+              &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+              &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+            &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+        },
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listPurchasableSkus_next">listPurchasableSkus_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Customer resource for the reseller or distributor. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: No Customer resource found for the name in the request. Return value: The updated Customer resource.
+
+Args:
+  name: string, Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}
+
+  updateMask: string, The update mask that applies to the resource. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Entity representing a customer of a reseller or distributor.
+  &quot;alternateEmail&quot;: &quot;A String&quot;, # Secondary contact email. Alternate email and primary contact email are required to have different domains if primary contact email is present. When creating admin.google.com accounts, users get notified credentials at this email. This email address is also used as a recovery email.
+  &quot;channelPartnerId&quot;: &quot;A String&quot;, # Cloud Identity ID of the customer&#x27;s channel partner. Populated only if a channel partner exists for this customer.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Output only. Customer&#x27;s cloud_identity_id. Populated only if a Cloud Identity resource exists for this customer.
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # Output only. Cloud Identity information for the customer. Populated only if a Cloud Identity account exists for this customer.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is created.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Primary domain used by the customer. Domain of primary contact email is required to be same as the provided domain.
+  &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id}
+  &quot;orgDisplayName&quot;: &quot;A String&quot;, # Required. Name of the organization that the customer entity represents.
+  &quot;orgPostalAddress&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Required. Address of the organization of the customer entity. Region and zip codes are required to enforce US laws and embargoes. Valid address lines are required for all customers. Language code is discarded. Use the Customer-level language code to set the customer&#x27;s language.
+    &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+      &quot;A String&quot;,
+    ],
+    &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+    &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+    &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+    &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+    &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+      &quot;A String&quot;,
+    ],
+    &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+    &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+    &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+    &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+  },
+  &quot;primaryContactInfo&quot;: { # Contact information for a customer account. # Primary contact info.
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. Display name of the contact in the customer account. Populated by combining customer first name and last name.
+    &quot;email&quot;: &quot;A String&quot;, # Email of the contact in the customer account. Email is required for entitlements that need creation of admin.google.com accounts. The email will be the username used in credentials to access the admin.google.com account.
+    &quot;firstName&quot;: &quot;A String&quot;, # First name of the contact in the customer account.
+    &quot;lastName&quot;: &quot;A String&quot;, # Last name of the contact in the customer account.
+    &quot;phone&quot;: &quot;A String&quot;, # Phone number of the contact in the customer account.
+    &quot;title&quot;: &quot;A String&quot;, # Optional. Job title of the contact in the customer account.
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the customer is updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="provisionCloudIdentity">provisionCloudIdentity(customer, body=None, x__xgafv=None)</code>
+  <pre>Creates a Cloud Identity for the given customer using the customer&#x27;s information, or the information provided here. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer was not found. * ALREADY_EXISTS: The customer&#x27;s primary email already exists. Retry after changing the customer&#x27;s primary contact email. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata contains an instance of OperationMetadata.
+
+Args:
+  customer: string, Required. Resource name of the customer. Format: accounts/{account_id}/customers/{customer_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ProvisionCloudIdentity
+  &quot;cloudIdentityInfo&quot;: { # Cloud Identity information for the Cloud Channel Customer. # CloudIdentity-specific customer information.
+    &quot;adminConsoleUri&quot;: &quot;A String&quot;, # Output only. URI of Customer&#x27;s Admin console dashboard.
+    &quot;alternateEmail&quot;: &quot;A String&quot;, # The alternate email.
+    &quot;customerType&quot;: &quot;A String&quot;, # CustomerType indicates verification type needed for using services.
+    &quot;eduData&quot;: { # Required Edu Attributes # Edu information about the customer.
+      &quot;instituteSize&quot;: &quot;A String&quot;, # Size of the institute.
+      &quot;instituteType&quot;: &quot;A String&quot;, # Designated institute type of customer.
+      &quot;website&quot;: &quot;A String&quot;, # Web address for the edu customer&#x27;s institution.
+    },
+    &quot;isDomainVerified&quot;: True or False, # Output only. Whether the domain is verified. This field is not returned for a Customer&#x27;s cloud_identity_info resource. Partners can use the domains.get() method of the Workspace SDK&#x27;s Directory API, or listen to the PRIMARY_DOMAIN_VERIFIED Pub/Sub event in to track domain verification of their resolve Workspace customers.
+    &quot;languageCode&quot;: &quot;A String&quot;, # Language code.
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Phone number associated with the Cloud Identity.
+    &quot;primaryDomain&quot;: &quot;A String&quot;, # Output only. The primary domain name.
+  },
+  &quot;user&quot;: { # Information needed to create an Admin User for Google Workspace. # Admin user information.
+    &quot;email&quot;: &quot;A String&quot;, # Primary email of the admin user.
+    &quot;familyName&quot;: &quot;A String&quot;, # Family name of the admin user.
+    &quot;givenName&quot;: &quot;A String&quot;, # Given name of the admin user.
+  },
+  &quot;validateOnly&quot;: True or False, # Validate the request and preview the review, but do not post it.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="transferEntitlements">transferEntitlements(parent, body=None, x__xgafv=None)</code>
+  <pre>Transfers customer entitlements to new reseller. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: The SKU was already transferred for the customer. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The SKU requires domain verification to transfer, but the domain is not verified. * An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic). * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * Specify all transferring entitlements. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  parent: string, Required. The resource name of the reseller&#x27;s customer account that will receive transferred entitlements. Parent uses the format: accounts/{account_id}/customers/{customer_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.TransferEntitlements.
+  &quot;authToken&quot;: &quot;A String&quot;, # The super admin of the resold customer generates this token to authorize a reseller to access their Cloud Identity and purchase entitlements on their behalf. You can omit this token after authorization. See https://support.google.com/a/answer/7643790 for more details.
+  &quot;entitlements&quot;: [ # Required. The new entitlements to create or transfer.
+    { # An entitlement is a representation of a customer&#x27;s ability to use a service.
+      &quot;associationInfo&quot;: { # Association links that an entitlement has to other entitlements. # Association information to other entitlements.
+        &quot;baseEntitlement&quot;: &quot;A String&quot;, # The name of the base entitlement, for which this entitlement is an add-on.
+      },
+      &quot;commitmentSettings&quot;: { # Commitment settings for commitment-based offers. # Commitment settings for a commitment-based Offer. Required for commitment based offers.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. Commitment end timestamp.
+        &quot;renewalSettings&quot;: { # Renewal settings for renewable Offers. # Optional. Renewal settings applicable for a commitment-based Offer.
+          &quot;enableRenewal&quot;: True or False, # If false, the plan will be completed at the end date.
+          &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+          &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+          &quot;resizeUnitCount&quot;: True or False, # If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.
+        },
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. Commitment start timestamp.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is created.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of an entitlement in the form: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}.
+      &quot;offer&quot;: &quot;A String&quot;, # Required. The offer resource name for which the entitlement is to be created. Takes the form: accounts/{account_id}/offers/{offer_id}.
+      &quot;parameters&quot;: [ # Extended entitlement parameters. When creating an entitlement, valid parameters&#x27; names and values are defined in the offer&#x27;s parameter definitions.
+        { # Definition for extended entitlement parameters.
+          &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+          &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+          &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+            &quot;boolValue&quot;: True or False, # Represents a boolean value.
+            &quot;doubleValue&quot;: 3.14, # Represents a double value.
+            &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+            &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+            &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+          },
+        },
+      ],
+      &quot;provisionedService&quot;: { # Service provisioned for an entitlement. # Output only. Service provisioning details for the entitlement.
+        &quot;productId&quot;: &quot;A String&quot;, # Output only. The product pertaining to the provisioning resource as specified in the Offer.
+        &quot;provisioningId&quot;: &quot;A String&quot;, # Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the underlying Subscription ID.
+        &quot;skuId&quot;: &quot;A String&quot;, # Output only. The SKU pertaining to the provisioning resource as specified in the Offer.
+      },
+      &quot;provisioningState&quot;: &quot;A String&quot;, # Output only. Current provisioning state of the entitlement.
+      &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      &quot;suspensionReasons&quot;: [ # Output only. Enumerable of all current suspension reasons for an entitlement.
+        &quot;A String&quot;,
+      ],
+      &quot;trialSettings&quot;: { # Settings for trial offers. # Output only. Settings for trial offers.
+        &quot;endTime&quot;: &quot;A String&quot;, # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example [Epoch converter](https://www.epochconverter.com).
+        &quot;trial&quot;: True or False, # Determines if the entitlement is in a trial or not: * `true` - The entitlement is in trial. * `false` - The entitlement is not in trial.
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is updated.
+    },
+  ],
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="transferEntitlementsToGoogle">transferEntitlementsToGoogle(parent, body=None, x__xgafv=None)</code>
+  <pre>Transfers customer entitlements from their current reseller to Google. Possible error codes: * PERMISSION_DENIED: The customer doesn&#x27;t belong to the reseller. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The customer or offer resource was not found. * ALREADY_EXISTS: The SKU was already transferred for the customer. * CONDITION_NOT_MET or FAILED_PRECONDITION: * The SKU requires domain verification to transfer, but the domain is not verified. * An Add-On SKU (example, Vault or Drive) is missing the pre-requisite SKU (example, G Suite Basic). * (Developer accounts only) Reseller and resold domain must meet the following naming requirements: * Domain names must start with goog-test. * Domain names must include the reseller domain. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The response will contain google.protobuf.Empty on success. The Operation metadata will contain an instance of OperationMetadata.
+
+Args:
+  parent: string, Required. The resource name of the reseller&#x27;s customer account where the entitlements transfer from. Parent uses the format: accounts/{account_id}/customers/{customer_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.TransferEntitlementsToGoogle.
+  &quot;entitlements&quot;: [ # Required. The entitlements to transfer to Google.
+    { # An entitlement is a representation of a customer&#x27;s ability to use a service.
+      &quot;associationInfo&quot;: { # Association links that an entitlement has to other entitlements. # Association information to other entitlements.
+        &quot;baseEntitlement&quot;: &quot;A String&quot;, # The name of the base entitlement, for which this entitlement is an add-on.
+      },
+      &quot;commitmentSettings&quot;: { # Commitment settings for commitment-based offers. # Commitment settings for a commitment-based Offer. Required for commitment based offers.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. Commitment end timestamp.
+        &quot;renewalSettings&quot;: { # Renewal settings for renewable Offers. # Optional. Renewal settings applicable for a commitment-based Offer.
+          &quot;enableRenewal&quot;: True or False, # If false, the plan will be completed at the end date.
+          &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+          &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+          &quot;resizeUnitCount&quot;: True or False, # If true and enable_renewal = true, the unit (for example seats or licenses) will be set to the number of active units at renewal time.
+        },
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. Commitment start timestamp.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is created.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of an entitlement in the form: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}.
+      &quot;offer&quot;: &quot;A String&quot;, # Required. The offer resource name for which the entitlement is to be created. Takes the form: accounts/{account_id}/offers/{offer_id}.
+      &quot;parameters&quot;: [ # Extended entitlement parameters. When creating an entitlement, valid parameters&#x27; names and values are defined in the offer&#x27;s parameter definitions.
+        { # Definition for extended entitlement parameters.
+          &quot;editable&quot;: True or False, # Output only. Specifies whether this parameter is allowed to be changed. For example, for a Google Workspace Business Starter entitlement in commitment plan, num_units is editable when entitlement is active.
+          &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+          &quot;value&quot;: { # Data type and value of a parameter. # Value of the parameter.
+            &quot;boolValue&quot;: True or False, # Represents a boolean value.
+            &quot;doubleValue&quot;: 3.14, # Represents a double value.
+            &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+            &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+            &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+          },
+        },
+      ],
+      &quot;provisionedService&quot;: { # Service provisioned for an entitlement. # Output only. Service provisioning details for the entitlement.
+        &quot;productId&quot;: &quot;A String&quot;, # Output only. The product pertaining to the provisioning resource as specified in the Offer.
+        &quot;provisioningId&quot;: &quot;A String&quot;, # Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the underlying Subscription ID.
+        &quot;skuId&quot;: &quot;A String&quot;, # Output only. The SKU pertaining to the provisioning resource as specified in the Offer.
+      },
+      &quot;provisioningState&quot;: &quot;A String&quot;, # Output only. Current provisioning state of the entitlement.
+      &quot;purchaseOrderId&quot;: &quot;A String&quot;, # Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.
+      &quot;suspensionReasons&quot;: [ # Output only. Enumerable of all current suspension reasons for an entitlement.
+        &quot;A String&quot;,
+      ],
+      &quot;trialSettings&quot;: { # Settings for trial offers. # Output only. Settings for trial offers.
+        &quot;endTime&quot;: &quot;A String&quot;, # Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example [Epoch converter](https://www.epochconverter.com).
+        &quot;trial&quot;: True or False, # Determines if the entitlement is in a trial or not: * `true` - The entitlement is in trial. * `false` - The entitlement is not in trial.
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which the entitlement is updated.
+    },
+  ],
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. You can specify an optional unique request ID, and if you need to retry your request, the server will know to ignore the request if it&#x27;s complete. For example, you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if it received the original operation with the same request ID. If it did, it will ignore the second request. The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122) with the exception that zero UUID is not supported (`00000000-0000-0000-0000-000000000000`).
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.accounts.html b/docs/dyn/cloudchannel_v1.accounts.html
new file mode 100644
index 0000000..be89a3b
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.accounts.html
@@ -0,0 +1,563 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.accounts.channelPartnerLinks.html">channelPartnerLinks()</a></code>
+</p>
+<p class="firstline">Returns the channelPartnerLinks Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.accounts.customers.html">customers()</a></code>
+</p>
+<p class="firstline">Returns the customers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.accounts.offers.html">offers()</a></code>
+</p>
+<p class="firstline">Returns the offers Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#checkCloudIdentityAccountsExist">checkCloudIdentityAccountsExist(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Confirms the existence of Cloud Identity accounts based on the domain and if the Cloud Identity accounts are owned by the reseller. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * INVALID_VALUE: Invalid domain value in the request. Return value: A list of CloudIdentityCustomerAccount resources for the domain (may be empty) Note: in the v1alpha1 version of the API, a NOT_FOUND error returns if no CloudIdentityCustomerAccount resources match the domain.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#listSubscribers">listSubscribers(account, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists service accounts with subscriber privileges on the Cloud Pub/Sub topic created for this Channel Services account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different, or the impersonated user is not a super admin. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The topic resource doesn't exist. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: A list of service email addresses.</p>
+<p class="toc_element">
+  <code><a href="#listSubscribers_next">listSubscribers_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#listTransferableOffers">listTransferableOffers(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List TransferableOffers of a customer based on Cloud Identity ID or Customer Name in the request. Use this method when a reseller gets the entitlement information of an unowned customer. The reseller should provide the customer's Cloud Identity ID or Customer Name. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller and has no auth token. * The supplied auth token is invalid. * The reseller account making the request is different from the reseller account in the query. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of TransferableOffer for the given customer and SKU.</p>
+<p class="toc_element">
+  <code><a href="#listTransferableOffers_next">listTransferableOffers_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#listTransferableSkus">listTransferableSkus(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List TransferableSkus of a customer based on the Cloud Identity ID or Customer Name in the request. Use this method to list the entitlements information of an unowned customer. You should provide the customer's Cloud Identity ID or Customer Name. Possible error codes: * PERMISSION_DENIED: * The customer doesn't belong to the reseller and has no auth token. * The supplied auth token is invalid. * The reseller account making the request is different from the reseller account in the query. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: A list of the customer's TransferableSku.</p>
+<p class="toc_element">
+  <code><a href="#listTransferableSkus_next">listTransferableSkus_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#register">register(account, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Registers a service account with subscriber privileges on the Cloud Pub/Sub topic for this Channel Services account. After you create a subscriber, you get the events through SubscriberEvent Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different, or the impersonated user is not a super admin. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The topic name with the registered service email address.</p>
+<p class="toc_element">
+  <code><a href="#unregister">unregister(account, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Unregisters a service account with subscriber privileges on the Cloud Pub/Sub topic created for this Channel Services account. If there are no service accounts left with subscriber privileges, this deletes the topic. You can call ListSubscribers to check for these accounts. Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different, or the impersonated user is not a super admin. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The topic resource doesn't exist. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The topic name that unregistered the service email address. Returns a success response if the service email address wasn't registered with the topic.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="checkCloudIdentityAccountsExist">checkCloudIdentityAccountsExist(parent, body=None, x__xgafv=None)</code>
+  <pre>Confirms the existence of Cloud Identity accounts based on the domain and if the Cloud Identity accounts are owned by the reseller. Possible error codes: * PERMISSION_DENIED: The reseller account making the request is different from the reseller account in the API request. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * INVALID_VALUE: Invalid domain value in the request. Return value: A list of CloudIdentityCustomerAccount resources for the domain (may be empty) Note: in the v1alpha1 version of the API, a NOT_FOUND error returns if no CloudIdentityCustomerAccount resources match the domain.
+
+Args:
+  parent: string, Required. The reseller account&#x27;s resource name. Parent uses the format: accounts/{account_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.CheckCloudIdentityAccountsExist.
+  &quot;domain&quot;: &quot;A String&quot;, # Required. Domain to fetch for Cloud Identity account customer.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.CheckCloudIdentityAccountsExist.
+  &quot;cloudIdentityAccounts&quot;: [ # The Cloud Identity accounts associated with the domain.
+    { # Entity representing a Cloud Identity account that may be associated with a Channel Services API partner.
+      &quot;customerCloudIdentityId&quot;: &quot;A String&quot;, # If existing = true, the Cloud Identity ID of the customer.
+      &quot;customerName&quot;: &quot;A String&quot;, # If owned = true, the name of the customer that owns the Cloud Identity account. Customer_name uses the format: accounts/{account_id}/customers/{customer_id}
+      &quot;existing&quot;: True or False, # Returns true if a Cloud Identity account exists for a specific domain.
+      &quot;owned&quot;: True or False, # Returns true if the Cloud Identity account is associated with a customer of the Channel Services partner.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listSubscribers">listSubscribers(account, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists service accounts with subscriber privileges on the Cloud Pub/Sub topic created for this Channel Services account. Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different, or the impersonated user is not a super admin. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The topic resource doesn&#x27;t exist. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: A list of service email addresses.
+
+Args:
+  account: string, Required. Resource name of the account. (required)
+  pageSize: integer, Optional. The maximum number of service accounts to return. The service may return fewer than this value. If unspecified, returns at most 100 service accounts. The maximum value is 1000; the server will coerce values above 1000.
+  pageToken: string, Optional. A page token, received from a previous `ListSubscribers` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscribers` must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response Message for ListSubscribers.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;serviceAccounts&quot;: [ # List of service accounts which have subscriber access to the topic.
+    &quot;A String&quot;,
+  ],
+  &quot;topic&quot;: &quot;A String&quot;, # Name of the topic registered with the reseller.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listSubscribers_next">listSubscribers_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="listTransferableOffers">listTransferableOffers(parent, body=None, x__xgafv=None)</code>
+  <pre>List TransferableOffers of a customer based on Cloud Identity ID or Customer Name in the request. Use this method when a reseller gets the entitlement information of an unowned customer. The reseller should provide the customer&#x27;s Cloud Identity ID or Customer Name. Possible error codes: * PERMISSION_DENIED: * The customer doesn&#x27;t belong to the reseller and has no auth token. * The supplied auth token is invalid. * The reseller account making the request is different from the reseller account in the query. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: List of TransferableOffer for the given customer and SKU.
+
+Args:
+  parent: string, Required. The resource name of the reseller&#x27;s account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ListTransferableOffers
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Customer&#x27;s Cloud Identity ID
+  &quot;customerName&quot;: &quot;A String&quot;, # A reseller should create a customer and use the resource name of that customer here.
+  &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;.
+  &quot;pageSize&quot;: 42, # Requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 offers. The maximum value is 1000; the server will coerce values above 1000.
+  &quot;pageToken&quot;: &quot;A String&quot;, # A token for a page of results other than the first page. Obtained using ListTransferableOffersResponse.next_page_token of the previous CloudChannelService.ListTransferableOffers call.
+  &quot;sku&quot;: &quot;A String&quot;, # Required. The SKU to look up Offers for.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.ListTransferableOffers.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass to ListTransferableOffersRequest.page_token to obtain that page.
+  &quot;transferableOffers&quot;: [ # Information about Offers for a customer that can be used for transfer.
+    { # TransferableOffer represents an Offer that can be used in Transfer. Read-only.
+      &quot;offer&quot;: { # Represents an offer made to resellers for purchase. An offer is associated with a Sku, has a plan for payment, a price, and defines the constraints for buying. # Offer with parameter constraints updated to allow the Transfer.
+        &quot;constraints&quot;: { # Represents the constraints for buying the Offer. # Constraints on transacting the Offer.
+          &quot;customerConstraints&quot;: { # Represents constraints required to purchase the Offer for a customer. # Represents constraints required to purchase the Offer for a customer.
+            &quot;allowedCustomerTypes&quot;: [ # Allowed Customer Type.
+              &quot;A String&quot;,
+            ],
+            &quot;allowedRegions&quot;: [ # Allowed geographical regions of the customer.
+              &quot;A String&quot;,
+            ],
+            &quot;promotionalOrderTypes&quot;: [ # Allowed Promotional Order Type. Present for Promotional offers.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. End of the Offer validity time.
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the Offer.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Offer. Format: accounts/{account_id}/offers/{offer_id}
+        &quot;parameterDefinitions&quot;: [ # Parameters required to use current Offer to purchase.
+          { # Parameter&#x27;s definition. Specifies what parameter is required to use the current Offer to purchase.
+            &quot;allowedValues&quot;: [ # If not empty, parameter values must be drawn from this list. For example, [us-west1, us-west2, ...] Applicable to STRING parameter type.
+              { # Data type and value of a parameter.
+                &quot;boolValue&quot;: True or False, # Represents a boolean value.
+                &quot;doubleValue&quot;: 3.14, # Represents a double value.
+                &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+                &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                },
+                &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+              },
+            ],
+            &quot;maxValue&quot;: { # Data type and value of a parameter. # Maximum value of the parameter, if applicable. Inclusive. For example, maximum seats when purchasing Google Workspace Business Standard. Applicable to INT64 and DOUBLE parameter types.
+              &quot;boolValue&quot;: True or False, # Represents a boolean value.
+              &quot;doubleValue&quot;: 3.14, # Represents a double value.
+              &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+              &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+              &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+            },
+            &quot;minValue&quot;: { # Data type and value of a parameter. # Minimal value of the parameter, if applicable. Inclusive. For example, minimal commitment when purchasing Anthos is 0.01. Applicable to INT64 and DOUBLE parameter types.
+              &quot;boolValue&quot;: True or False, # Represents a boolean value.
+              &quot;doubleValue&quot;: 3.14, # Represents a double value.
+              &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+              &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+              &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+            },
+            &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+            &quot;optional&quot;: True or False, # If set to true, parameter is optional to purchase this Offer.
+            &quot;parameterType&quot;: &quot;A String&quot;, # Data type of the parameter. Minimal value, Maximum value and allowed values will use specified data type here.
+          },
+        ],
+        &quot;plan&quot;: { # The payment plan for the Offer. Describes how to make a payment. # Describes the payment plan for the Offer.
+          &quot;billingAccount&quot;: &quot;A String&quot;, # Reseller Billing account to charge after an offer transaction. Only present for Google Cloud Platform offers.
+          &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+          &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+          &quot;paymentType&quot;: &quot;A String&quot;, # Specifies when the payment needs to happen.
+          &quot;trialPeriod&quot;: { # Represents period in days/months/years. # Present for Offers with a trial period. For trial-only Offers, a paid service needs to start before the trial period ends for continued service. For Regular Offers with a trial period, the regular pricing goes into effect when trial period ends, or if paid service is started before the end of the trial period.
+            &quot;duration&quot;: 42, # Total duration of Period Type defined.
+            &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+          },
+        },
+        &quot;priceByResources&quot;: [ # Price for each monetizable resource type.
+          { # Represents price by resource type.
+            &quot;price&quot;: { # Represents the price of the Offer. # Price of the Offer. Present if there are no price phases.
+              &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+              },
+              &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+              &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+              },
+              &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+            },
+            &quot;pricePhases&quot;: [ # Specifies the price by time range.
+              { # Specifies the price by the duration of months. For example, a 20% discount for the first six months, then a 10% discount starting on the seventh month.
+                &quot;firstPeriod&quot;: 42, # Defines first period for the phase.
+                &quot;lastPeriod&quot;: 42, # Defines first period for the phase.
+                &quot;periodType&quot;: &quot;A String&quot;, # Defines the phase period type.
+                &quot;price&quot;: { # Represents the price of the Offer. # Price of the phase. Present if there are no price tiers.
+                  &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                  },
+                  &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+                  &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                    &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                    &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                    &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                  },
+                  &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+                },
+                &quot;priceTiers&quot;: [ # Price by the resource tiers.
+                  { # Defines price at resource tier level. For example, an offer with following definition : * Tier 1: Provide 25% discount for all seats between 1 and 25. * Tier 2: Provide 10% discount for all seats between 26 and 100. * Tier 3: Provide flat 15% discount for all seats above 100. Each of these tiers is represented as a PriceTier.
+                    &quot;firstResource&quot;: 42, # First resource for which the tier price applies.
+                    &quot;lastResource&quot;: 42, # Last resource for which the tier price applies.
+                    &quot;price&quot;: { # Represents the price of the Offer. # Price of the tier.
+                      &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                      },
+                      &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+                      &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                        &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                        &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                        &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                      },
+                      &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+                    },
+                  },
+                ],
+              },
+            ],
+            &quot;resourceType&quot;: &quot;A String&quot;, # Resource Type. Example: SEAT
+          },
+        ],
+        &quot;sku&quot;: { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs. # SKU the offer is associated with.
+          &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+            &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+              &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+              &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+              &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+            &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+          &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+            &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+              &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+                &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+                &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+                &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+              },
+              &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+              &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+            },
+            &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+          },
+        },
+        &quot;startTime&quot;: &quot;A String&quot;, # Start of the Offer validity time.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listTransferableOffers_next">listTransferableOffers_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="listTransferableSkus">listTransferableSkus(parent, body=None, x__xgafv=None)</code>
+  <pre>List TransferableSkus of a customer based on the Cloud Identity ID or Customer Name in the request. Use this method to list the entitlements information of an unowned customer. You should provide the customer&#x27;s Cloud Identity ID or Customer Name. Possible error codes: * PERMISSION_DENIED: * The customer doesn&#x27;t belong to the reseller and has no auth token. * The supplied auth token is invalid. * The reseller account making the request is different from the reseller account in the query. * INVALID_ARGUMENT: Required request parameters are missing or invalid. Return value: A list of the customer&#x27;s TransferableSku.
+
+Args:
+  parent: string, Required. The reseller account&#x27;s resource name. Parent uses the format: accounts/{account_id} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for CloudChannelService.ListTransferableSkus
+  &quot;authToken&quot;: &quot;A String&quot;, # The super admin of the resold customer generates this token to authorize a reseller to access their Cloud Identity and purchase entitlements on their behalf. You can omit this token after authorization. See https://support.google.com/a/answer/7643790 for more details.
+  &quot;cloudIdentityId&quot;: &quot;A String&quot;, # Customer&#x27;s Cloud Identity ID
+  &quot;customerName&quot;: &quot;A String&quot;, # A reseller is required to create a customer and use the resource name of the created customer here. Customer_name uses the format: accounts/{account_id}/customers/{customer_id}
+  &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;. Optional.
+  &quot;pageSize&quot;: 42, # The requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 SKUs. The maximum value is 1000; the server will coerce values above 1000. Optional.
+  &quot;pageToken&quot;: &quot;A String&quot;, # A token for a page of results other than the first page. Obtained using ListTransferableSkusResponse.next_page_token of the previous CloudChannelService.ListTransferableSkus call. Optional.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for CloudChannelService.ListTransferableSkus.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass to ListTransferableSkusRequest.page_token to obtain that page.
+  &quot;transferableSkus&quot;: [ # Information about existing SKUs for a customer that needs a transfer.
+    { # TransferableSku represents information a reseller needs to view existing provisioned services for a customer that they do not own. Read-only.
+      &quot;legacySku&quot;: { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs. # Optional. The customer to transfer has an entitlement with the populated legacy SKU.
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+        &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+          &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+            &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+              &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+              &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+              &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+            &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+        },
+      },
+      &quot;sku&quot;: { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs. # The SKU pertaining to the provisioning resource as specified in the Offer.
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+        &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+          &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+            &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+              &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+              &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+              &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+            &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+        },
+      },
+      &quot;transferEligibility&quot;: { # Specifies transfer eligibility of a SKU. # Describes the transfer eligibility of a SKU.
+        &quot;description&quot;: &quot;A String&quot;, # Localized description if reseller is not eligible to transfer the SKU.
+        &quot;ineligibilityReason&quot;: &quot;A String&quot;, # Specified the reason for ineligibility.
+        &quot;isEligible&quot;: True or False, # Whether reseller is eligible to transfer the SKU.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="listTransferableSkus_next">listTransferableSkus_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="register">register(account, body=None, x__xgafv=None)</code>
+  <pre>Registers a service account with subscriber privileges on the Cloud Pub/Sub topic for this Channel Services account. After you create a subscriber, you get the events through SubscriberEvent Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different, or the impersonated user is not a super admin. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The topic name with the registered service email address.
+
+Args:
+  account: string, Required. Resource name of the account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request Message for RegisterSubscriber.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # Required. Service account that provides subscriber access to the registered topic.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response Message for RegisterSubscriber.
+  &quot;topic&quot;: &quot;A String&quot;, # Name of the topic the subscriber will listen to.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="unregister">unregister(account, body=None, x__xgafv=None)</code>
+  <pre>Unregisters a service account with subscriber privileges on the Cloud Pub/Sub topic created for this Channel Services account. If there are no service accounts left with subscriber privileges, this deletes the topic. You can call ListSubscribers to check for these accounts. Possible error codes: * PERMISSION_DENIED: The reseller account making the request and the provided reseller account are different, or the impersonated user is not a super admin. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The topic resource doesn&#x27;t exist. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The topic name that unregistered the service email address. Returns a success response if the service email address wasn&#x27;t registered with the topic.
+
+Args:
+  account: string, Required. Resource name of the account. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request Message for UnregisterSubscriber.
+  &quot;serviceAccount&quot;: &quot;A String&quot;, # Required. Service account to unregister from subscriber access to the topic.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response Message for UnregisterSubscriber.
+  &quot;topic&quot;: &quot;A String&quot;, # Name of the topic the service account subscriber access was removed from.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.accounts.offers.html b/docs/dyn/cloudchannel_v1.accounts.offers.html
new file mode 100644
index 0000000..32f1506
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.accounts.offers.html
@@ -0,0 +1,291 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.accounts.html">accounts</a> . <a href="cloudchannel_v1.accounts.offers.html">offers</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the Offers the reseller can sell. Possible error codes: * INVALID_ARGUMENT: Required request parameters are missing or invalid.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the Offers the reseller can sell. Possible error codes: * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+
+Args:
+  parent: string, Required. The resource name of the reseller account from which to list Offers. Parent uses the format: accounts/{account_id}. (required)
+  filter: string, Optional. The expression to filter results by name (name of the Offer), sku.name (name of the SKU), or sku.product.name (name of the Product). Example 1: sku.product.name=products/p1 AND sku.name!=products/p1/skus/s1 Example 2: name=accounts/a1/offers/o1
+  languageCode: string, Optional. The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;.
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, returns at most 500 Offers. The maximum value is 1000; the server will coerce values above 1000.
+  pageToken: string, Optional. A token for a page of results other than the first page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListOffers.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results.
+  &quot;offers&quot;: [ # The list of Offers requested.
+    { # Represents an offer made to resellers for purchase. An offer is associated with a Sku, has a plan for payment, a price, and defines the constraints for buying.
+      &quot;constraints&quot;: { # Represents the constraints for buying the Offer. # Constraints on transacting the Offer.
+        &quot;customerConstraints&quot;: { # Represents constraints required to purchase the Offer for a customer. # Represents constraints required to purchase the Offer for a customer.
+          &quot;allowedCustomerTypes&quot;: [ # Allowed Customer Type.
+            &quot;A String&quot;,
+          ],
+          &quot;allowedRegions&quot;: [ # Allowed geographical regions of the customer.
+            &quot;A String&quot;,
+          ],
+          &quot;promotionalOrderTypes&quot;: [ # Allowed Promotional Order Type. Present for Promotional offers.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+      &quot;endTime&quot;: &quot;A String&quot;, # Output only. End of the Offer validity time.
+      &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the Offer.
+        &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+          &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+          &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+          &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+        },
+        &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+        &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Offer. Format: accounts/{account_id}/offers/{offer_id}
+      &quot;parameterDefinitions&quot;: [ # Parameters required to use current Offer to purchase.
+        { # Parameter&#x27;s definition. Specifies what parameter is required to use the current Offer to purchase.
+          &quot;allowedValues&quot;: [ # If not empty, parameter values must be drawn from this list. For example, [us-west1, us-west2, ...] Applicable to STRING parameter type.
+            { # Data type and value of a parameter.
+              &quot;boolValue&quot;: True or False, # Represents a boolean value.
+              &quot;doubleValue&quot;: 3.14, # Represents a double value.
+              &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+              &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+              },
+              &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+            },
+          ],
+          &quot;maxValue&quot;: { # Data type and value of a parameter. # Maximum value of the parameter, if applicable. Inclusive. For example, maximum seats when purchasing Google Workspace Business Standard. Applicable to INT64 and DOUBLE parameter types.
+            &quot;boolValue&quot;: True or False, # Represents a boolean value.
+            &quot;doubleValue&quot;: 3.14, # Represents a double value.
+            &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+            &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+            &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+          },
+          &quot;minValue&quot;: { # Data type and value of a parameter. # Minimal value of the parameter, if applicable. Inclusive. For example, minimal commitment when purchasing Anthos is 0.01. Applicable to INT64 and DOUBLE parameter types.
+            &quot;boolValue&quot;: True or False, # Represents a boolean value.
+            &quot;doubleValue&quot;: 3.14, # Represents a double value.
+            &quot;int64Value&quot;: &quot;A String&quot;, # Represents an int64 value.
+            &quot;protoValue&quot;: { # Represents an &#x27;Any&#x27; proto value.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+            &quot;stringValue&quot;: &quot;A String&quot;, # Represents a string value.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Name of the parameter.
+          &quot;optional&quot;: True or False, # If set to true, parameter is optional to purchase this Offer.
+          &quot;parameterType&quot;: &quot;A String&quot;, # Data type of the parameter. Minimal value, Maximum value and allowed values will use specified data type here.
+        },
+      ],
+      &quot;plan&quot;: { # The payment plan for the Offer. Describes how to make a payment. # Describes the payment plan for the Offer.
+        &quot;billingAccount&quot;: &quot;A String&quot;, # Reseller Billing account to charge after an offer transaction. Only present for Google Cloud Platform offers.
+        &quot;paymentCycle&quot;: { # Represents period in days/months/years. # Describes how frequently the reseller will be billed, such as once per month.
+          &quot;duration&quot;: 42, # Total duration of Period Type defined.
+          &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+        },
+        &quot;paymentPlan&quot;: &quot;A String&quot;, # Describes how a reseller will be billed.
+        &quot;paymentType&quot;: &quot;A String&quot;, # Specifies when the payment needs to happen.
+        &quot;trialPeriod&quot;: { # Represents period in days/months/years. # Present for Offers with a trial period. For trial-only Offers, a paid service needs to start before the trial period ends for continued service. For Regular Offers with a trial period, the regular pricing goes into effect when trial period ends, or if paid service is started before the end of the trial period.
+          &quot;duration&quot;: 42, # Total duration of Period Type defined.
+          &quot;periodType&quot;: &quot;A String&quot;, # Period Type.
+        },
+      },
+      &quot;priceByResources&quot;: [ # Price for each monetizable resource type.
+        { # Represents price by resource type.
+          &quot;price&quot;: { # Represents the price of the Offer. # Price of the Offer. Present if there are no price phases.
+            &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+              &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+              &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+            },
+            &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+            &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+              &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+              &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+            },
+            &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+          },
+          &quot;pricePhases&quot;: [ # Specifies the price by time range.
+            { # Specifies the price by the duration of months. For example, a 20% discount for the first six months, then a 10% discount starting on the seventh month.
+              &quot;firstPeriod&quot;: 42, # Defines first period for the phase.
+              &quot;lastPeriod&quot;: 42, # Defines first period for the phase.
+              &quot;periodType&quot;: &quot;A String&quot;, # Defines the phase period type.
+              &quot;price&quot;: { # Represents the price of the Offer. # Price of the phase. Present if there are no price tiers.
+                &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                },
+                &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+                &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                },
+                &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+              },
+              &quot;priceTiers&quot;: [ # Price by the resource tiers.
+                { # Defines price at resource tier level. For example, an offer with following definition : * Tier 1: Provide 25% discount for all seats between 1 and 25. * Tier 2: Provide 10% discount for all seats between 26 and 100. * Tier 3: Provide flat 15% discount for all seats above 100. Each of these tiers is represented as a PriceTier.
+                  &quot;firstResource&quot;: 42, # First resource for which the tier price applies.
+                  &quot;lastResource&quot;: 42, # Last resource for which the tier price applies.
+                  &quot;price&quot;: { # Represents the price of the Offer. # Price of the tier.
+                    &quot;basePrice&quot;: { # Represents an amount of money with its currency type. # Base price.
+                      &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                      &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                      &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                    },
+                    &quot;discount&quot;: 3.14, # Discount percentage, represented as decimal. For example, a 20% discount will be represent as 0.2.
+                    &quot;effectivePrice&quot;: { # Represents an amount of money with its currency type. # Effective Price after applying the discounts.
+                      &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+                      &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                      &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+                    },
+                    &quot;externalPriceUri&quot;: &quot;A String&quot;, # Link to external price list, such as link to Google Voice rate card.
+                  },
+                },
+              ],
+            },
+          ],
+          &quot;resourceType&quot;: &quot;A String&quot;, # Resource Type. Example: SEAT
+        },
+      ],
+      &quot;sku&quot;: { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs. # SKU the offer is associated with.
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+        &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+          &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+            &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+              &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+              &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+              &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+            &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+          },
+          &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+        },
+      },
+      &quot;startTime&quot;: &quot;A String&quot;, # Start of the Offer validity time.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.html b/docs/dyn/cloudchannel_v1.html
new file mode 100644
index 0000000..6a081e8
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.html
@@ -0,0 +1,121 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.products.html">products()</a></code>
+</p>
+<p class="firstline">Returns the products Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.operations.html b/docs/dyn/cloudchannel_v1.operations.html
new file mode 100644
index 0000000..0f07f40
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.products.html b/docs/dyn/cloudchannel_v1.products.html
new file mode 100644
index 0000000..558765d
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.products.html
@@ -0,0 +1,147 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.products.html">products</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="cloudchannel_v1.products.skus.html">skus()</a></code>
+</p>
+<p class="firstline">Returns the skus Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(account=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the Products the reseller is authorized to sell. Possible error codes: * INVALID_ARGUMENT: Required request parameters are missing or invalid.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(account=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the Products the reseller is authorized to sell. Possible error codes: * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+
+Args:
+  account: string, Required. The resource name of the reseller account. Format: accounts/{account_id}.
+  languageCode: string, Optional. The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;.
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 Products. The maximum value is 1000; the server will coerce values above 1000.
+  pageToken: string, Optional. A token for a page of results other than the first page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListProducts.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results.
+  &quot;products&quot;: [ # List of Products requested.
+    { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc.
+      &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+        &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+          &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+          &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+          &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+        },
+        &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+        &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudchannel_v1.products.skus.html b/docs/dyn/cloudchannel_v1.products.skus.html
new file mode 100644
index 0000000..5d1b682
--- /dev/null
+++ b/docs/dyn/cloudchannel_v1.products.skus.html
@@ -0,0 +1,155 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="cloudchannel_v1.html">Cloud Channel API</a> . <a href="cloudchannel_v1.products.html">products</a> . <a href="cloudchannel_v1.products.skus.html">skus</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, account=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the SKUs for a product the reseller is authorized to sell. Possible error codes: * INVALID_ARGUMENT: Required request parameters are missing or invalid.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, account=None, languageCode=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the SKUs for a product the reseller is authorized to sell. Possible error codes: * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+
+Args:
+  parent: string, Required. The resource name of the Product to list SKUs for. Parent uses the format: products/{product_id}. Supports products/- to retrieve SKUs for all products. (required)
+  account: string, Required. Resource name of the reseller. Format: accounts/{account_id}.
+  languageCode: string, Optional. The BCP-47 language code. For example, &quot;en-US&quot;. The response will localize in the corresponding language code, if specified. The default value is &quot;en-US&quot;.
+  pageSize: integer, Optional. Requested page size. Server might return fewer results than requested. If unspecified, returns at most 100 SKUs. The maximum value is 1000; the server will coerce values above 1000.
+  pageToken: string, Optional. A token for a page of results other than the first page. Optional.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListSkus.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results.
+  &quot;skus&quot;: [ # The list of SKUs requested.
+    { # Represents a product&#x27;s purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs.
+      &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the SKU.
+        &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+          &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+          &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+          &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+        },
+        &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+        &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource Name of the SKU. Format: products/{product_id}/skus/{sku_id}
+      &quot;product&quot;: { # A Product is the entity a customer uses when placing an order. For example, Google Workspace, Google Voice, etc. # Product the SKU is associated with.
+        &quot;marketingInfo&quot;: { # Represents the marketing information for a Product, SKU or Offer. # Marketing information for the product.
+          &quot;defaultLogo&quot;: { # Represents media information. # Default logo.
+            &quot;content&quot;: &quot;A String&quot;, # URL of the media.
+            &quot;title&quot;: &quot;A String&quot;, # Title of the media.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the media.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # Human readable description. Description can contain HTML.
+          &quot;displayName&quot;: &quot;A String&quot;, # Human readable name.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource Name of the Product. Format: products/{product_id}
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/cloudresourcemanager_v3.folders.html b/docs/dyn/cloudresourcemanager_v3.folders.html
index ab4c027..90038a7 100644
--- a/docs/dyn/cloudresourcemanager_v3.folders.html
+++ b/docs/dyn/cloudresourcemanager_v3.folders.html
@@ -79,43 +79,43 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#create">create(body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a Folder in the resource hierarchy. Returns an Operation which can be used to track the progress of the folder creation workflow. Upon success the Operation.response field will be populated with the created Folder. In order to succeed, the addition of this new Folder must not violate the Folder naming, height or fanout constraints. + The Folder's display_name must be distinct from all other Folders that share its parent. + The addition of the Folder must not cause the active Folder hierarchy to exceed a height of 10. Note, the full active + deleted Folder hierarchy is allowed to reach a height of 20; this provides additional headroom when moving folders that contain deleted folders. + The addition of the Folder must not cause the total number of Folders under its parent to exceed 300. If the operation fails due to a folder constraint violation, some errors may be returned by the CreateFolder request, with status code FAILED_PRECONDITION and an error description. Other folder constraint violations will be communicated in the Operation, with the specific PreconditionFailure returned via the details list in the Operation.error field. The caller must have `resourcemanager.folders.create` permission on the identified parent.</p>
+<p class="firstline">Creates a folder in the resource hierarchy. Returns an `Operation` which can be used to track the progress of the folder creation workflow. Upon success, the `Operation.response` field will be populated with the created Folder. In order to succeed, the addition of this new folder must not violate the folder naming, height, or fanout constraints. + The folder's `display_name` must be distinct from all other folders that share its parent. + The addition of the folder must not cause the active folder hierarchy to exceed a height of 10. Note, the full active + deleted folder hierarchy is allowed to reach a height of 20; this provides additional headroom when moving folders that contain deleted folders. + The addition of the folder must not cause the total number of folders under its parent to exceed 300. If the operation fails due to a folder constraint violation, some errors may be returned by the `CreateFolder` request, with status code `FAILED_PRECONDITION` and an error description. Other folder constraint violations will be communicated in the `Operation`, with the specific `PreconditionFailure` returned in the details list in the `Operation.error` field. The caller must have `resourcemanager.folders.create` permission on the identified parent.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Requests deletion of a Folder. The Folder is moved into the DELETE_REQUESTED state immediately, and is deleted approximately 30 days later. This method may only be called on an empty Folder, where a Folder is empty if it doesn't contain any Folders or Projects in the ACTIVE state. If called on a folder in DELETE_REQUESTED state the result will be a no-op success. The caller must have `resourcemanager.folders.delete` permission on the identified folder.</p>
+<p class="firstline">Requests deletion of a folder. The folder is moved into the DELETE_REQUESTED state immediately, and is deleted approximately 30 days later. This method may only be called on an empty folder, where a folder is empty if it doesn't contain any folders or projects in the ACTIVE state. If called on a folder in DELETE_REQUESTED state the operation will result in a no-op success. The caller must have `resourcemanager.folders.delete` permission on the identified folder.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Retrieves a Folder identified by the supplied resource name. Valid Folder resource names have the format `folders/{folder_id}` (for example, `folders/1234`). The caller must have `resourcemanager.folders.get` permission on the identified folder.</p>
+<p class="firstline">Retrieves a folder identified by the supplied resource name. Valid folder resource names have the format `folders/{folder_id}` (for example, `folders/1234`). The caller must have `resourcemanager.folders.get` permission on the identified folder.</p>
 <p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Gets the access control policy for a Folder. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the Folder's resource name, e.g. "folders/1234". The caller must have `resourcemanager.folders.getIamPolicy` permission on the identified folder.</p>
+<p class="firstline">Gets the access control policy for a folder. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the folder's resource name, for example: "folders/1234". The caller must have `resourcemanager.folders.getIamPolicy` permission on the identified folder.</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, pageToken=None, parent=None, showDeleted=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists the Folders that are direct descendants of supplied parent resource. List provides a strongly consistent view of the Folders underneath the specified parent resource. List returns Folders sorted based upon the (ascending) lexical ordering of their display_name. The caller must have `resourcemanager.folders.list` permission on the identified parent.</p>
+<p class="firstline">Lists the folders that are direct descendants of supplied parent resource. `list()` provides a strongly consistent view of the folders underneath the specified parent resource. `list()` returns folders sorted based upon the (ascending) lexical ordering of their display_name. The caller must have `resourcemanager.folders.list` permission on the identified parent.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#move">move(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Moves a Folder under a new resource parent. Returns an Operation which can be used to track the progress of the folder move workflow. Upon success the Operation.response field will be populated with the moved Folder. Upon failure, a FolderOperationError categorizing the failure cause will be returned - if the failure occurs synchronously then the FolderOperationError will be returned via the Status.details field and if it occurs asynchronously then the FolderOperation will be returned via the Operation.error field. In addition, the Operation.metadata field will be populated with a FolderOperation message as an aid to stateless clients. Folder moves will be rejected if they violate either the naming, height or fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.move` permission on the folder's current and proposed new parent.</p>
+<p class="firstline">Moves a folder under a new resource parent. Returns an `Operation` which can be used to track the progress of the folder move workflow. Upon success, the `Operation.response` field will be populated with the moved folder. Upon failure, a `FolderOperationError` categorizing the failure cause will be returned - if the failure occurs synchronously then the `FolderOperationError` will be returned in the `Status.details` field. If it occurs asynchronously, then the FolderOperation will be returned in the `Operation.error` field. In addition, the `Operation.metadata` field will be populated with a `FolderOperation` message as an aid to stateless clients. Folder moves will be rejected if they violate either the naming, height, or fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.move` permission on the folder's current and proposed new parent.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates a Folder, changing its display_name. Changes to the folder display_name will be rejected if they violate either the display_name formatting rules or naming constraints described in the CreateFolder documentation. The Folder's display_name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be between 3 and 30 characters. This is captured by the regular expression: `\p{L}\p{N}{1,28}[\p{L}\p{N}]`. The caller must have `resourcemanager.folders.update` permission on the identified folder. If the update fails due to the unique name constraint then a PreconditionFailure explaining this violation will be returned in the Status.details field.</p>
+<p class="firstline">Updates a folder, changing its `display_name`. Changes to the folder `display_name` will be rejected if they violate either the `display_name` formatting rules or the naming constraints described in the CreateFolder documentation. The folder's `display_name` must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be between 3 and 30 characters. This is captured by the regular expression: `\p{L}\p{N}{1,28}[\p{L}\p{N}]`. The caller must have `resourcemanager.folders.update` permission on the identified folder. If the update fails due to the unique name constraint then a `PreconditionFailure` explaining this violation will be returned in the Status.details field.</p>
 <p class="toc_element">
   <code><a href="#search">search(pageSize=None, pageToken=None, query=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Search for folders that match specific filter criteria. Search provides an eventually consistent view of the folders a user has access to which meet the specified filter criteria. This will only return folders on which the caller has the permission `resourcemanager.folders.get`.</p>
+<p class="firstline">Search for folders that match specific filter criteria. `search()` provides an eventually consistent view of the folders a user has access to which meet the specified filter criteria. This will only return folders on which the caller has the permission `resourcemanager.folders.get`.</p>
 <p class="toc_element">
   <code><a href="#search_next">search_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets the access control policy on a Folder, replacing any existing policy. The `resource` field should be the Folder's resource name, e.g. "folders/1234". The caller must have `resourcemanager.folders.setIamPolicy` permission on the identified folder.</p>
+<p class="firstline">Sets the access control policy on a folder, replacing any existing policy. The `resource` field should be the folder's resource name, for example: "folders/1234". The caller must have `resourcemanager.folders.setIamPolicy` permission on the identified folder.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns permissions that a caller has on the specified Folder. The `resource` field should be the Folder's resource name, e.g. "folders/1234". There are no permissions required for making this API call.</p>
+<p class="firstline">Returns permissions that a caller has on the specified folder. The `resource` field should be the folder's resource name, for example: "folders/1234". There are no permissions required for making this API call.</p>
 <p class="toc_element">
   <code><a href="#undelete">undelete(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Cancels the deletion request for a Folder. This method may be called on a Folder in any state. If Folder is in ACTIVE state the result will be a no-op success. In order to succeed, the Folder's parent must be in the ACTIVE state. In addition, reintroducing the folder into the tree must not violate folder naming, height and fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.undelete` permission on the identified folder.</p>
+<p class="firstline">Cancels the deletion request for a folder. This method may be called on a folder in any state. If the folder is in the ACTIVE state the result will be a no-op success. In order to succeed, the folder's parent must be in the ACTIVE state. In addition, reintroducing the folder into the tree must not violate folder naming, height, and fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.undelete` permission on the identified folder.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -124,21 +124,21 @@
 
 <div class="method">
     <code class="details" id="create">create(body=None, x__xgafv=None)</code>
-  <pre>Creates a Folder in the resource hierarchy. Returns an Operation which can be used to track the progress of the folder creation workflow. Upon success the Operation.response field will be populated with the created Folder. In order to succeed, the addition of this new Folder must not violate the Folder naming, height or fanout constraints. + The Folder&#x27;s display_name must be distinct from all other Folders that share its parent. + The addition of the Folder must not cause the active Folder hierarchy to exceed a height of 10. Note, the full active + deleted Folder hierarchy is allowed to reach a height of 20; this provides additional headroom when moving folders that contain deleted folders. + The addition of the Folder must not cause the total number of Folders under its parent to exceed 300. If the operation fails due to a folder constraint violation, some errors may be returned by the CreateFolder request, with status code FAILED_PRECONDITION and an error description. Other folder constraint violations will be communicated in the Operation, with the specific PreconditionFailure returned via the details list in the Operation.error field. The caller must have `resourcemanager.folders.create` permission on the identified parent.
+  <pre>Creates a folder in the resource hierarchy. Returns an `Operation` which can be used to track the progress of the folder creation workflow. Upon success, the `Operation.response` field will be populated with the created Folder. In order to succeed, the addition of this new folder must not violate the folder naming, height, or fanout constraints. + The folder&#x27;s `display_name` must be distinct from all other folders that share its parent. + The addition of the folder must not cause the active folder hierarchy to exceed a height of 10. Note, the full active + deleted folder hierarchy is allowed to reach a height of 20; this provides additional headroom when moving folders that contain deleted folders. + The addition of the folder must not cause the total number of folders under its parent to exceed 300. If the operation fails due to a folder constraint violation, some errors may be returned by the `CreateFolder` request, with status code `FAILED_PRECONDITION` and an error description. Other folder constraint violations will be communicated in the `Operation`, with the specific `PreconditionFailure` returned in the details list in the `Operation.error` field. The caller must have `resourcemanager.folders.create` permission on the identified parent.
 
 Args:
   body: object, The request body.
     The object takes the form of:
 
-{ # A Folder in an Organization&#x27;s resource hierarchy, used to organize that Organization&#x27;s resources.
-  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was created.
-  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was requested to be deleted.
-  &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
-  &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the Folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
-  &quot;parent&quot;: &quot;A String&quot;, # Required. The Folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed via MoveFolder.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed via DeleteFolder and UndeleteFolder.
-  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was last modified.
+{ # A folder in an organization&#x27;s resource hierarchy, used to organize that organization&#x27;s resources.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was requested to be deleted.
+  &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings. For example, no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
+  &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
+  &quot;parent&quot;: &quot;A String&quot;, # Required. The folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed using MoveFolder.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed using DeleteFolder and UndeleteFolder.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was last modified.
 }
 
   x__xgafv: string, V1 error format.
@@ -172,10 +172,10 @@
 
 <div class="method">
     <code class="details" id="delete">delete(name, x__xgafv=None)</code>
-  <pre>Requests deletion of a Folder. The Folder is moved into the DELETE_REQUESTED state immediately, and is deleted approximately 30 days later. This method may only be called on an empty Folder, where a Folder is empty if it doesn&#x27;t contain any Folders or Projects in the ACTIVE state. If called on a folder in DELETE_REQUESTED state the result will be a no-op success. The caller must have `resourcemanager.folders.delete` permission on the identified folder.
+  <pre>Requests deletion of a folder. The folder is moved into the DELETE_REQUESTED state immediately, and is deleted approximately 30 days later. This method may only be called on an empty folder, where a folder is empty if it doesn&#x27;t contain any folders or projects in the ACTIVE state. If called on a folder in DELETE_REQUESTED state the operation will result in a no-op success. The caller must have `resourcemanager.folders.delete` permission on the identified folder.
 
 Args:
-  name: string, Required. The resource name of the Folder to be deleted. Must be of the form `folders/{folder_id}`. (required)
+  name: string, Required. The resource name of the folder to be deleted. Must be of the form `folders/{folder_id}`. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -207,10 +207,10 @@
 
 <div class="method">
     <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Retrieves a Folder identified by the supplied resource name. Valid Folder resource names have the format `folders/{folder_id}` (for example, `folders/1234`). The caller must have `resourcemanager.folders.get` permission on the identified folder.
+  <pre>Retrieves a folder identified by the supplied resource name. Valid folder resource names have the format `folders/{folder_id}` (for example, `folders/1234`). The caller must have `resourcemanager.folders.get` permission on the identified folder.
 
 Args:
-  name: string, Required. The resource name of the Folder to retrieve. Must be of the form `folders/{folder_id}`. (required)
+  name: string, Required. The resource name of the folder to retrieve. Must be of the form `folders/{folder_id}`. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -219,21 +219,21 @@
 Returns:
   An object of the form:
 
-    { # A Folder in an Organization&#x27;s resource hierarchy, used to organize that Organization&#x27;s resources.
-  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was created.
-  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was requested to be deleted.
-  &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
-  &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the Folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
-  &quot;parent&quot;: &quot;A String&quot;, # Required. The Folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed via MoveFolder.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed via DeleteFolder and UndeleteFolder.
-  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was last modified.
+    { # A folder in an organization&#x27;s resource hierarchy, used to organize that organization&#x27;s resources.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was requested to be deleted.
+  &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings. For example, no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
+  &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
+  &quot;parent&quot;: &quot;A String&quot;, # Required. The folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed using MoveFolder.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed using DeleteFolder and UndeleteFolder.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was last modified.
 }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</code>
-  <pre>Gets the access control policy for a Folder. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the Folder&#x27;s resource name, e.g. &quot;folders/1234&quot;. The caller must have `resourcemanager.folders.getIamPolicy` permission on the identified folder.
+  <pre>Gets the access control policy for a folder. The returned policy may be empty if no such policy or resource exists. The `resource` field should be the folder&#x27;s resource name, for example: &quot;folders/1234&quot;. The caller must have `resourcemanager.folders.getIamPolicy` permission on the identified folder.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
@@ -289,13 +289,13 @@
 
 <div class="method">
     <code class="details" id="list">list(pageSize=None, pageToken=None, parent=None, showDeleted=None, x__xgafv=None)</code>
-  <pre>Lists the Folders that are direct descendants of supplied parent resource. List provides a strongly consistent view of the Folders underneath the specified parent resource. List returns Folders sorted based upon the (ascending) lexical ordering of their display_name. The caller must have `resourcemanager.folders.list` permission on the identified parent.
+  <pre>Lists the folders that are direct descendants of supplied parent resource. `list()` provides a strongly consistent view of the folders underneath the specified parent resource. `list()` returns folders sorted based upon the (ascending) lexical ordering of their display_name. The caller must have `resourcemanager.folders.list` permission on the identified parent.
 
 Args:
-  pageSize: integer, Optional. The maximum number of Folders to return in the response. If unspecified, server picks an appropriate default.
+  pageSize: integer, Optional. The maximum number of folders to return in the response. If unspecified, server picks an appropriate default.
   pageToken: string, Optional. A pagination token returned from a previous call to `ListFolders` that indicates where this listing should continue from.
-  parent: string, Required. The resource name of the Organization or Folder whose Folders are being listed. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`. Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.
-  showDeleted: boolean, Optional. Controls whether Folders in the DELETE_REQUESTED state should be returned. Defaults to false.
+  parent: string, Required. The resource name of the organization or folder whose folders are being listed. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`. Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.
+  showDeleted: boolean, Optional. Controls whether folders in the DELETE_REQUESTED state should be returned. Defaults to false.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -305,16 +305,16 @@
   An object of the form:
 
     { # The ListFolders response message.
-  &quot;folders&quot;: [ # A possibly paginated list of Folders that are direct descendants of the specified parent resource.
-    { # A Folder in an Organization&#x27;s resource hierarchy, used to organize that Organization&#x27;s resources.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was created.
-      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was requested to be deleted.
-      &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
-      &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the Folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
-      &quot;parent&quot;: &quot;A String&quot;, # Required. The Folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed via MoveFolder.
-      &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed via DeleteFolder and UndeleteFolder.
-      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was last modified.
+  &quot;folders&quot;: [ # A possibly paginated list of folders that are direct descendants of the specified parent resource.
+    { # A folder in an organization&#x27;s resource hierarchy, used to organize that organization&#x27;s resources.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was requested to be deleted.
+      &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings. For example, no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
+      &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
+      &quot;parent&quot;: &quot;A String&quot;, # Required. The folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed using MoveFolder.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed using DeleteFolder and UndeleteFolder.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was last modified.
     },
   ],
   &quot;nextPageToken&quot;: &quot;A String&quot;, # A pagination token returned from a previous call to `ListFolders` that indicates from where listing should continue.
@@ -337,7 +337,7 @@
 
 <div class="method">
     <code class="details" id="move">move(name, body=None, x__xgafv=None)</code>
-  <pre>Moves a Folder under a new resource parent. Returns an Operation which can be used to track the progress of the folder move workflow. Upon success the Operation.response field will be populated with the moved Folder. Upon failure, a FolderOperationError categorizing the failure cause will be returned - if the failure occurs synchronously then the FolderOperationError will be returned via the Status.details field and if it occurs asynchronously then the FolderOperation will be returned via the Operation.error field. In addition, the Operation.metadata field will be populated with a FolderOperation message as an aid to stateless clients. Folder moves will be rejected if they violate either the naming, height or fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.move` permission on the folder&#x27;s current and proposed new parent.
+  <pre>Moves a folder under a new resource parent. Returns an `Operation` which can be used to track the progress of the folder move workflow. Upon success, the `Operation.response` field will be populated with the moved folder. Upon failure, a `FolderOperationError` categorizing the failure cause will be returned - if the failure occurs synchronously then the `FolderOperationError` will be returned in the `Status.details` field. If it occurs asynchronously, then the FolderOperation will be returned in the `Operation.error` field. In addition, the `Operation.metadata` field will be populated with a `FolderOperation` message as an aid to stateless clients. Folder moves will be rejected if they violate either the naming, height, or fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.move` permission on the folder&#x27;s current and proposed new parent.
 
 Args:
   name: string, Required. The resource name of the Folder to move. Must be of the form folders/{folder_id} (required)
@@ -345,7 +345,7 @@
     The object takes the form of:
 
 { # The MoveFolder request message.
-  &quot;destinationParent&quot;: &quot;A String&quot;, # Required. The resource name of the Folder or Organization to reparent the folder under. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
+  &quot;destinationParent&quot;: &quot;A String&quot;, # Required. The resource name of the folder or organization which should be the folder&#x27;s new parent. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`.
 }
 
   x__xgafv: string, V1 error format.
@@ -379,22 +379,22 @@
 
 <div class="method">
     <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates a Folder, changing its display_name. Changes to the folder display_name will be rejected if they violate either the display_name formatting rules or naming constraints described in the CreateFolder documentation. The Folder&#x27;s display_name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be between 3 and 30 characters. This is captured by the regular expression: `\p{L}\p{N}{1,28}[\p{L}\p{N}]`. The caller must have `resourcemanager.folders.update` permission on the identified folder. If the update fails due to the unique name constraint then a PreconditionFailure explaining this violation will be returned in the Status.details field.
+  <pre>Updates a folder, changing its `display_name`. Changes to the folder `display_name` will be rejected if they violate either the `display_name` formatting rules or the naming constraints described in the CreateFolder documentation. The folder&#x27;s `display_name` must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be between 3 and 30 characters. This is captured by the regular expression: `\p{L}\p{N}{1,28}[\p{L}\p{N}]`. The caller must have `resourcemanager.folders.update` permission on the identified folder. If the update fails due to the unique name constraint then a `PreconditionFailure` explaining this violation will be returned in the Status.details field.
 
 Args:
-  name: string, Output only. The resource name of the Folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;. (required)
+  name: string, Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;. (required)
   body: object, The request body.
     The object takes the form of:
 
-{ # A Folder in an Organization&#x27;s resource hierarchy, used to organize that Organization&#x27;s resources.
-  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was created.
-  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was requested to be deleted.
-  &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
-  &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the Folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
-  &quot;parent&quot;: &quot;A String&quot;, # Required. The Folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed via MoveFolder.
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed via DeleteFolder and UndeleteFolder.
-  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was last modified.
+{ # A folder in an organization&#x27;s resource hierarchy, used to organize that organization&#x27;s resources.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was requested to be deleted.
+  &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings. For example, no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
+  &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
+  &quot;parent&quot;: &quot;A String&quot;, # Required. The folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed using MoveFolder.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed using DeleteFolder and UndeleteFolder.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was last modified.
 }
 
   updateMask: string, Required. Fields to be updated. Only the `display_name` can be updated.
@@ -429,12 +429,12 @@
 
 <div class="method">
     <code class="details" id="search">search(pageSize=None, pageToken=None, query=None, x__xgafv=None)</code>
-  <pre>Search for folders that match specific filter criteria. Search provides an eventually consistent view of the folders a user has access to which meet the specified filter criteria. This will only return folders on which the caller has the permission `resourcemanager.folders.get`.
+  <pre>Search for folders that match specific filter criteria. `search()` provides an eventually consistent view of the folders a user has access to which meet the specified filter criteria. This will only return folders on which the caller has the permission `resourcemanager.folders.get`.
 
 Args:
   pageSize: integer, Optional. The maximum number of folders to return in the response. If unspecified, server picks an appropriate default.
   pageToken: string, Optional. A pagination token returned from a previous call to `SearchFolders` that indicates from where search should continue.
-  query: string, Optional. Search criteria used to select the Folders to return. If no search criteria is specified then all accessible folders will be returned. Query expressions can be used to restrict results based upon displayName, state and parent, where the operators `=` (`:`) `NOT`, `AND` and `OR` can be used along with the suffix wildcard symbol `*`. The displayName field in a query expression should use escaped quotes for values that include whitespace to prevent unexpected behavior. | Field | Description | |-------------------------|----------------------------------------| | displayName | Filters by displayName. | | parent | Filters by parent (e.g. folders/123). | | state, lifecycleState | Filters by state. | Some example queries are: * Query `displayName=Test*` returns Folder resources whose display name starts with &quot;Test&quot;. * Query `state=ACTIVE` returns Folder resources with `state` set to `ACTIVE`. * Query `parent=folders/123` returns Folder resources that have `folders/123` as a parent resource. * Query `parent=folders/123 AND state=ACTIVE` returns active Folder resources that have `folders/123` as a parent resource. * Query `displayName=\\&quot;Test String\\&quot;` returns Folder resources with display names that include both &quot;Test&quot; and &quot;String&quot;.
+  query: string, Optional. Search criteria used to select the folders to return. If no search criteria is specified then all accessible folders will be returned. Query expressions can be used to restrict results based upon displayName, state and parent, where the operators `=` (`:`) `NOT`, `AND` and `OR` can be used along with the suffix wildcard symbol `*`. The `displayName` field in a query expression should use escaped quotes for values that include whitespace to prevent unexpected behavior. | Field | Description | |-------------------------|----------------------------------------| | displayName | Filters by displayName. | | parent | Filters by parent (for example: folders/123). | | state, lifecycleState | Filters by state. | Some example queries are: * Query `displayName=Test*` returns Folder resources whose display name starts with &quot;Test&quot;. * Query `state=ACTIVE` returns Folder resources with `state` set to `ACTIVE`. * Query `parent=folders/123` returns Folder resources that have `folders/123` as a parent resource. * Query `parent=folders/123 AND state=ACTIVE` returns active Folder resources that have `folders/123` as a parent resource. * Query `displayName=\\&quot;Test String\\&quot;` returns Folder resources with display names that include both &quot;Test&quot; and &quot;String&quot;.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -445,15 +445,15 @@
 
     { # The response message for searching folders.
   &quot;folders&quot;: [ # A possibly paginated folder search results. the specified parent resource.
-    { # A Folder in an Organization&#x27;s resource hierarchy, used to organize that Organization&#x27;s resources.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was created.
-      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was requested to be deleted.
-      &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings, e.g. no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
-      &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the Folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
-      &quot;parent&quot;: &quot;A String&quot;, # Required. The Folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed via MoveFolder.
-      &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed via DeleteFolder and UndeleteFolder.
-      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Folder was last modified.
+    { # A folder in an organization&#x27;s resource hierarchy, used to organize that organization&#x27;s resources.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was requested to be deleted.
+      &quot;displayName&quot;: &quot;A String&quot;, # The folder&#x27;s display name. A folder&#x27;s display name must be unique amongst its siblings. For example, no two folders with the same parent can share the same display name. The display name must start and end with a letter or digit, may contain letters, digits, spaces, hyphens and underscores and can be no longer than 30 characters. This is captured by the regular expression: `[\p{L}\p{N}]([\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?`.
+      &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the folder resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the folder. Its format is `folders/{folder_id}`, for example: &quot;folders/1234&quot;.
+      &quot;parent&quot;: &quot;A String&quot;, # Required. The folder&#x27;s parent&#x27;s resource name. Updates to the folder&#x27;s parent must be performed using MoveFolder.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The lifecycle state of the folder. Updates to the state must be performed using DeleteFolder and UndeleteFolder.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the folder was last modified.
     },
   ],
   &quot;nextPageToken&quot;: &quot;A String&quot;, # A pagination token returned from a previous call to `SearchFolders` that indicates from where searching should continue.
@@ -476,7 +476,7 @@
 
 <div class="method">
     <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
-  <pre>Sets the access control policy on a Folder, replacing any existing policy. The `resource` field should be the Folder&#x27;s resource name, e.g. &quot;folders/1234&quot;. The caller must have `resourcemanager.folders.setIamPolicy` permission on the identified folder.
+  <pre>Sets the access control policy on a folder, replacing any existing policy. The `resource` field should be the folder&#x27;s resource name, for example: &quot;folders/1234&quot;. The caller must have `resourcemanager.folders.setIamPolicy` permission on the identified folder.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
@@ -561,7 +561,7 @@
 
 <div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
-  <pre>Returns permissions that a caller has on the specified Folder. The `resource` field should be the Folder&#x27;s resource name, e.g. &quot;folders/1234&quot;. There are no permissions required for making this API call.
+  <pre>Returns permissions that a caller has on the specified folder. The `resource` field should be the folder&#x27;s resource name, for example: &quot;folders/1234&quot;. There are no permissions required for making this API call.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
@@ -591,10 +591,10 @@
 
 <div class="method">
     <code class="details" id="undelete">undelete(name, body=None, x__xgafv=None)</code>
-  <pre>Cancels the deletion request for a Folder. This method may be called on a Folder in any state. If Folder is in ACTIVE state the result will be a no-op success. In order to succeed, the Folder&#x27;s parent must be in the ACTIVE state. In addition, reintroducing the folder into the tree must not violate folder naming, height and fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.undelete` permission on the identified folder.
+  <pre>Cancels the deletion request for a folder. This method may be called on a folder in any state. If the folder is in the ACTIVE state the result will be a no-op success. In order to succeed, the folder&#x27;s parent must be in the ACTIVE state. In addition, reintroducing the folder into the tree must not violate folder naming, height, and fanout constraints described in the CreateFolder documentation. The caller must have `resourcemanager.folders.undelete` permission on the identified folder.
 
 Args:
-  name: string, Required. The resource name of the Folder to undelete. Must be of the form `folders/{folder_id}`. (required)
+  name: string, Required. The resource name of the folder to undelete. Must be of the form `folders/{folder_id}`. (required)
   body: object, The request body.
     The object takes the form of:
 
diff --git a/docs/dyn/cloudresourcemanager_v3.organizations.html b/docs/dyn/cloudresourcemanager_v3.organizations.html
index 1de4947..ec18c89 100644
--- a/docs/dyn/cloudresourcemanager_v3.organizations.html
+++ b/docs/dyn/cloudresourcemanager_v3.organizations.html
@@ -79,22 +79,22 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Fetches an Organization resource identified by the specified resource name.</p>
+<p class="firstline">Fetches an organization resource identified by the specified resource name.</p>
 <p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">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". Authorization requires the Google IAM permission `resourcemanager.organizations.getIamPolicy` on the specified organization</p>
+<p class="firstline">Gets the access control policy for an organization resource. The policy may be empty if no such policy or resource exists. The `resource` field should be the organization's resource name, for example: "organizations/123". Authorization requires the IAM permission `resourcemanager.organizations.getIamPolicy` on the specified organization.</p>
 <p class="toc_element">
   <code><a href="#search">search(pageSize=None, pageToken=None, query=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Searches Organization resources that are visible to the user and satisfy the specified filter. This method returns Organizations in an unspecified order. New Organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get`</p>
+<p class="firstline">Searches organization resources that are visible to the user and satisfy the specified filter. This method returns organizations in an unspecified order. New organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get`</p>
 <p class="toc_element">
   <code><a href="#search_next">search_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">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". Authorization requires the Google IAM permission `resourcemanager.organizations.setIamPolicy` on the specified organization</p>
+<p class="firstline">Sets the access control policy on an organization resource. Replaces any existing policy. The `resource` field should be the organization's resource name, for example: "organizations/123". Authorization requires the IAM permission `resourcemanager.organizations.setIamPolicy` on the specified organization.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns permissions that a caller has on the specified Organization. The `resource` field should be the organization's resource name, e.g. "organizations/123". There are no permissions required for making this API call.</p>
+<p class="firstline">Returns the permissions that a caller has on the specified organization. The `resource` field should be the organization's resource name, for example: "organizations/123". There are no permissions required for making this API call.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -103,7 +103,7 @@
 
 <div class="method">
     <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Fetches an Organization resource identified by the specified resource name.
+  <pre>Fetches an organization resource identified by the specified resource name.
 
 Args:
   name: string, Required. The resource name of the Organization to fetch. This is the organization&#x27;s relative path in the API, formatted as &quot;organizations/[organizationId]&quot;. For example, &quot;organizations/1234&quot;. (required)
@@ -115,11 +115,11 @@
 Returns:
   An object of the form:
 
-    { # The root node in the resource hierarchy to which a particular entity&#x27;s (e.g., company) resources belong.
+    { # The root node in the resource hierarchy to which a particular entity&#x27;s (a company, for example) resources belong.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Organization was created.
   &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Organization was requested for deletion.
   &quot;directoryCustomerId&quot;: &quot;A String&quot;, # Immutable. The G Suite / Workspace customer id used in the Directory API.
-  &quot;displayName&quot;: &quot;A String&quot;, # Output only. A human-readable string that refers to the Organization in the GCP Console UI. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, &quot;google.com&quot;) of the G Suite customer that owns the organization.
+  &quot;displayName&quot;: &quot;A String&quot;, # Output only. A human-readable string that refers to the organization in the Google Cloud Console. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, &quot;google.com&quot;) of the Google Workspace customer that owns the organization.
   &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Organization resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the organization. This is the organization&#x27;s relative path in the API. Its format is &quot;organizations/[organization_id]&quot;. For example, &quot;organizations/1234&quot;.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The organization&#x27;s current lifecycle state.
@@ -129,7 +129,7 @@
 
 <div class="method">
     <code class="details" id="getIamPolicy">getIamPolicy(resource, body=None, 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&#x27;s resource name, e.g. &quot;organizations/123&quot;. Authorization requires the Google IAM permission `resourcemanager.organizations.getIamPolicy` on the specified organization
+  <pre>Gets the access control policy for an organization resource. The policy may be empty if no such policy or resource exists. The `resource` field should be the organization&#x27;s resource name, for example: &quot;organizations/123&quot;. Authorization requires the IAM permission `resourcemanager.organizations.getIamPolicy` on the specified organization.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
@@ -185,10 +185,10 @@
 
 <div class="method">
     <code class="details" id="search">search(pageSize=None, pageToken=None, query=None, x__xgafv=None)</code>
-  <pre>Searches Organization resources that are visible to the user and satisfy the specified filter. This method returns Organizations in an unspecified order. New Organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get`
+  <pre>Searches organization resources that are visible to the user and satisfy the specified filter. This method returns organizations in an unspecified order. New organizations do not necessarily appear at the end of the results, and may take a small amount of time to appear. Search will only return organizations on which the user has the permission `resourcemanager.organizations.get`
 
 Args:
-  pageSize: integer, Optional. The maximum number of Organizations to return in the response. If unspecified, server picks an appropriate default.
+  pageSize: integer, Optional. The maximum number of organizations to return in the response. If unspecified, server picks an appropriate default.
   pageToken: string, Optional. A pagination token returned from a previous call to `SearchOrganizations` that indicates from where listing should continue.
   query: string, Optional. An optional query string used to filter the Organizations to return in the response. Query rules are case-insensitive. | Field | Description | |------------------|--------------------------------------------| | directoryCustomerId, owner.directoryCustomerId | Filters by directory customer id. | | domain | Filters by domain. | Organizations may be queried by `directoryCustomerId` or by `domain`, where the domain is a G Suite domain, for example: * Query `directorycustomerid:123456789` returns Organization resources with `owner.directory_customer_id` equal to `123456789`. * Query `domain:google.com` returns Organization resources corresponding to the domain `google.com`.
   x__xgafv: string, V1 error format.
@@ -202,11 +202,11 @@
     { # The response returned from the `SearchOrganizations` method.
   &quot;nextPageToken&quot;: &quot;A String&quot;, # A pagination token to be used to retrieve the next page of results. If the result is too large to fit within the page size specified in the request, this field will be set with a token that can be used to fetch the next page of results. If this field is empty, it indicates that this response contains the last page of results.
   &quot;organizations&quot;: [ # The list of Organizations that matched the search query, possibly paginated.
-    { # The root node in the resource hierarchy to which a particular entity&#x27;s (e.g., company) resources belong.
+    { # The root node in the resource hierarchy to which a particular entity&#x27;s (a company, for example) resources belong.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Organization was created.
       &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. Timestamp when the Organization was requested for deletion.
       &quot;directoryCustomerId&quot;: &quot;A String&quot;, # Immutable. The G Suite / Workspace customer id used in the Directory API.
-      &quot;displayName&quot;: &quot;A String&quot;, # Output only. A human-readable string that refers to the Organization in the GCP Console UI. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, &quot;google.com&quot;) of the G Suite customer that owns the organization.
+      &quot;displayName&quot;: &quot;A String&quot;, # Output only. A human-readable string that refers to the organization in the Google Cloud Console. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, &quot;google.com&quot;) of the Google Workspace customer that owns the organization.
       &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Organization resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
       &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the organization. This is the organization&#x27;s relative path in the API. Its format is &quot;organizations/[organization_id]&quot;. For example, &quot;organizations/1234&quot;.
       &quot;state&quot;: &quot;A String&quot;, # Output only. The organization&#x27;s current lifecycle state.
@@ -232,7 +232,7 @@
 
 <div class="method">
     <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, 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&#x27;s resource name, e.g. &quot;organizations/123&quot;. Authorization requires the Google IAM permission `resourcemanager.organizations.setIamPolicy` on the specified organization
+  <pre>Sets the access control policy on an organization resource. Replaces any existing policy. The `resource` field should be the organization&#x27;s resource name, for example: &quot;organizations/123&quot;. Authorization requires the IAM permission `resourcemanager.organizations.setIamPolicy` on the specified organization.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
@@ -317,7 +317,7 @@
 
 <div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
-  <pre>Returns permissions that a caller has on the specified Organization. The `resource` field should be the organization&#x27;s resource name, e.g. &quot;organizations/123&quot;. There are no permissions required for making this API call.
+  <pre>Returns the permissions that a caller has on the specified organization. The `resource` field should be the organization&#x27;s resource name, for example: &quot;organizations/123&quot;. There are no permissions required for making this API call.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
diff --git a/docs/dyn/cloudresourcemanager_v3.projects.html b/docs/dyn/cloudresourcemanager_v3.projects.html
index f21561c..0a28419 100644
--- a/docs/dyn/cloudresourcemanager_v3.projects.html
+++ b/docs/dyn/cloudresourcemanager_v3.projects.html
@@ -79,43 +79,43 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#create">create(body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Request that a new Project be created. The result is an Operation which can be used to track the creation process. This process usually takes a few seconds, but can sometimes take much longer. The tracking Operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.</p>
+<p class="firstline">Request that a new project be created. The result is an `Operation` which can be used to track the creation process. This process usually takes a few seconds, but can sometimes take much longer. The tracking `Operation` is automatically deleted after a few hours, so there is no need to call `DeleteOperation`.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Marks the Project identified by the specified `name` (for example, `projects/415104041262`) for deletion. This method will only affect the Project if it has a lifecycle state of ACTIVE. This method changes the Project's lifecycle state from ACTIVE to DELETE_REQUESTED. The deletion starts at an unspecified time, at which point the Project is no longer accessible. Until the deletion completes, you can check the lifecycle state checked by retrieving the Project with GetProject, and the Project remains visible to ListProjects. However, you cannot update the project. After the deletion completes, the Project is not retrievable by the GetProject, ListProjects, and SearchProjects methods. This method behaves idempotently (eg., deleting a `DELETE_REQUESTED` project will not be an error, but also won't do anything). The caller must have delete permissions for this Project.</p>
+<p class="firstline">Marks the project identified by the specified `name` (for example, `projects/415104041262`) for deletion. This method will only affect the project if it has a lifecycle state of ACTIVE. This method changes the Project's lifecycle state from ACTIVE to DELETE_REQUESTED. The deletion starts at an unspecified time, at which point the Project is no longer accessible. Until the deletion completes, you can check the lifecycle state checked by retrieving the project with GetProject, and the project remains visible to ListProjects. However, you cannot update the project. After the deletion completes, the project is not retrievable by the GetProject, ListProjects, and SearchProjects methods. This method behaves idempotently, such that deleting a `DELETE_REQUESTED` project will not cause an error, but also won't do anything. The caller must have `resourcemanager.projects.delete` permissions for this project.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
-<p class="firstline">Retrieves the Project identified by the specified `name` (for example, `projects/415104041262`). The caller must have read permissions for this Project.</p>
+<p class="firstline">Retrieves the project identified by the specified `name` (for example, `projects/415104041262`). The caller must have `resourcemanager.projects.get` permission for this project.</p>
 <p class="toc_element">
   <code><a href="#getIamPolicy">getIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the IAM access control policy for the specified Project. Permission is denied if the policy or the resource does not exist.</p>
+<p class="firstline">Returns the IAM access control policy for the specified project. Permission is denied if the policy or the resource do not exist.</p>
 <p class="toc_element">
   <code><a href="#list">list(pageSize=None, pageToken=None, parent=None, showDeleted=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists Projects that are direct children of the specified folder or organization resource. List provides a strongly consistent view of the Projects underneath the specified parent resource. List returns Projects sorted based upon the (ascending) lexical ordering of their `display_name`. The caller must have `resourcemanager.projects.list` permission on the identified parent.</p>
+<p class="firstline">Lists projects that are direct children of the specified folder or organization resource. `list()` provides a strongly consistent view of the projects underneath the specified parent resource. `list()` returns projects sorted based upon the (ascending) lexical ordering of their `display_name`. The caller must have `resourcemanager.projects.list` permission on the identified parent.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#move">move(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Move a Project under a new resource parent. Returns an operation which can be used to track the process of the Project move workflow. Upon success, the Operation.response field will be populated with the moved Project. The caller must have `resourcemanager.projects.update` permission on the Project and have `resourcemanager.projects.move` permission on the Project's current and proposed new parent. </p>
+<p class="firstline">Move a project to another place in your resource hierarchy, under a new resource parent. Returns an operation which can be used to track the process of the project move workflow. Upon success, the `Operation.response` field will be populated with the moved project. The caller must have `resourcemanager.projects.update` permission on the project and have `resourcemanager.projects.move` permission on the project's current and proposed new parent. If project has no current parent, or it currently does not have an associated organization resource, you will also need the `resourcemanager.projects.setIamPolicy` permission in the project. </p>
 <p class="toc_element">
   <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the attributes of the Project identified by the specified `name` (for example, `projects/415104041262`). At present this is only useful for updating the display_name and labels. Deleting all labels requires an update mask for labels field. The caller must have modify permissions for this Project.</p>
+<p class="firstline">Updates the `display_name` and labels of the project identified by the specified `name` (for example, `projects/415104041262`). Deleting all labels requires an update mask for labels field. The caller must have `resourcemanager.projects.update` permission for this project.</p>
 <p class="toc_element">
   <code><a href="#search">search(pageSize=None, pageToken=None, query=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Search for Projects that the caller has the `resourcemanager.projects.get` permission on and satisfy the specified query. This method returns Projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.</p>
+<p class="firstline">Search for projects that the caller has both `resourcemanager.projects.get` permission on, and also satisfy the specified query. This method returns projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.</p>
 <p class="toc_element">
   <code><a href="#search_next">search_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Sets the IAM access control policy for the specified Project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. NOTE: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited via Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + Membership changes that leave the project without any owners that have accepted the Terms of Service (ToS) will be rejected. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. + Calling this method requires enabling the App Engine Admin API.</p>
+<p class="firstline">Sets the IAM access control policy for the specified project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. Note: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited using the Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + Membership changes that leave the project without any owners that have accepted the Terms of Service (ToS) will be rejected. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. + Calling this method requires enabling the App Engine Admin API.</p>
 <p class="toc_element">
   <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns permissions that a caller has on the specified Project.</p>
+<p class="firstline">Returns permissions that a caller has on the specified project.</p>
 <p class="toc_element">
   <code><a href="#undelete">undelete(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Restores the Project identified by the specified `name` (for example, `projects/415104041262`). You can only use this method for a Project that has a lifecycle state of DELETE_REQUESTED. After deletion starts, the Project cannot be restored. The caller must have undelete permissions for this Project.</p>
+<p class="firstline">Restores the project identified by the specified `name` (for example, `projects/415104041262`). You can only use this method for a project that has a lifecycle state of DELETE_REQUESTED. After deletion starts, the project cannot be restored. The caller must have `resourcemanager.projects.undelete` permission for this project.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -124,24 +124,24 @@
 
 <div class="method">
     <code class="details" id="create">create(body=None, x__xgafv=None)</code>
-  <pre>Request that a new Project be created. The result is an Operation which can be used to track the creation process. This process usually takes a few seconds, but can sometimes take much longer. The tracking Operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.
+  <pre>Request that a new project be created. The result is an `Operation` which can be used to track the creation process. This process usually takes a few seconds, but can sometimes take much longer. The tracking `Operation` is automatically deleted after a few hours, so there is no need to call `DeleteOperation`.
 
 Args:
   body: object, The request body.
     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.
+{ # A project is a high-level Google Cloud entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time.
   &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. The time at which this resource was requested for deletion.
-  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
+  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
   &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Project resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-  &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
+  &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the Project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
   &quot;parent&quot;: &quot;A String&quot;, # Optional. A reference to a parent Resource. eg., `organizations/123` or `folders/876`.
-  &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the Project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The Project lifecycle state.
+  &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The project lifecycle state.
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The most recent time this resource was modified.
 }
 
@@ -176,7 +176,7 @@
 
 <div class="method">
     <code class="details" id="delete">delete(name, x__xgafv=None)</code>
-  <pre>Marks the Project identified by the specified `name` (for example, `projects/415104041262`) for deletion. This method will only affect the Project if it has a lifecycle state of ACTIVE. This method changes the Project&#x27;s lifecycle state from ACTIVE to DELETE_REQUESTED. The deletion starts at an unspecified time, at which point the Project is no longer accessible. Until the deletion completes, you can check the lifecycle state checked by retrieving the Project with GetProject, and the Project remains visible to ListProjects. However, you cannot update the project. After the deletion completes, the Project is not retrievable by the GetProject, ListProjects, and SearchProjects methods. This method behaves idempotently (eg., deleting a `DELETE_REQUESTED` project will not be an error, but also won&#x27;t do anything). The caller must have delete permissions for this Project.
+  <pre>Marks the project identified by the specified `name` (for example, `projects/415104041262`) for deletion. This method will only affect the project if it has a lifecycle state of ACTIVE. This method changes the Project&#x27;s lifecycle state from ACTIVE to DELETE_REQUESTED. The deletion starts at an unspecified time, at which point the Project is no longer accessible. Until the deletion completes, you can check the lifecycle state checked by retrieving the project with GetProject, and the project remains visible to ListProjects. However, you cannot update the project. After the deletion completes, the project is not retrievable by the GetProject, ListProjects, and SearchProjects methods. This method behaves idempotently, such that deleting a `DELETE_REQUESTED` project will not cause an error, but also won&#x27;t do anything. The caller must have `resourcemanager.projects.delete` permissions for this project.
 
 Args:
   name: string, Required. The name of the Project (for example, `projects/415104041262`). (required)
@@ -211,7 +211,7 @@
 
 <div class="method">
     <code class="details" id="get">get(name, x__xgafv=None)</code>
-  <pre>Retrieves the Project identified by the specified `name` (for example, `projects/415104041262`). The caller must have read permissions for this Project.
+  <pre>Retrieves the project identified by the specified `name` (for example, `projects/415104041262`). The caller must have `resourcemanager.projects.get` permission for this project.
 
 Args:
   name: string, Required. The name of the project (for example, `projects/415104041262`). (required)
@@ -223,25 +223,25 @@
 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.
+    { # A project is a high-level Google Cloud entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time.
   &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. The time at which this resource was requested for deletion.
-  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
+  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
   &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Project resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-  &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
+  &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the Project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
   &quot;parent&quot;: &quot;A String&quot;, # Optional. A reference to a parent Resource. eg., `organizations/123` or `folders/876`.
-  &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the Project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The Project lifecycle state.
+  &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The project lifecycle state.
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The most recent time this resource was modified.
 }</pre>
 </div>
 
 <div class="method">
     <code class="details" id="getIamPolicy">getIamPolicy(resource, body=None, 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.
+  <pre>Returns the IAM access control policy for the specified project. Permission is denied if the policy or the resource do not exist.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
@@ -297,13 +297,13 @@
 
 <div class="method">
     <code class="details" id="list">list(pageSize=None, pageToken=None, parent=None, showDeleted=None, x__xgafv=None)</code>
-  <pre>Lists Projects that are direct children of the specified folder or organization resource. List provides a strongly consistent view of the Projects underneath the specified parent resource. List returns Projects sorted based upon the (ascending) lexical ordering of their `display_name`. The caller must have `resourcemanager.projects.list` permission on the identified parent.
+  <pre>Lists projects that are direct children of the specified folder or organization resource. `list()` provides a strongly consistent view of the projects underneath the specified parent resource. `list()` returns projects sorted based upon the (ascending) lexical ordering of their `display_name`. The caller must have `resourcemanager.projects.list` permission on the identified parent.
 
 Args:
-  pageSize: integer, Optional. The maximum number of Projects to return in the response. The server can return fewer Projects than requested. If unspecified, server picks an appropriate default.
+  pageSize: integer, Optional. The maximum number of projects to return in the response. The server can return fewer projects than requested. If unspecified, server picks an appropriate default.
   pageToken: string, Optional. A pagination token returned from a previous call to ListProjects that indicates from where listing should continue.
   parent: string, Required. The name of the parent resource to list projects under. For example, setting this field to &#x27;folders/1234&#x27; would list all projects directly under that folder.
-  showDeleted: boolean, Optional. Indicate that Projects in the `DELETE_REQUESTED` state should also be returned. Normally only `ACTIVE` projects are returned.
+  showDeleted: boolean, Optional. Indicate that projects in the `DELETE_REQUESTED` state should also be returned. Normally only `ACTIVE` projects are returned.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -315,18 +315,18 @@
     { # A page of the response received from the ListProjects method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page. NOTE: A response may contain fewer elements than the request `page_size` and still have a `next_page_token`.
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.
   &quot;projects&quot;: [ # The list of Projects under the parent. 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.
+    { # A project is a high-level Google Cloud entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time.
       &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. The time at which this resource was requested for deletion.
-      &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
+      &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
       &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Project resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-      &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
+      &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the Project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
       &quot;parent&quot;: &quot;A String&quot;, # Optional. A reference to a parent Resource. eg., `organizations/123` or `folders/876`.
-      &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the Project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
-      &quot;state&quot;: &quot;A String&quot;, # Output only. The Project lifecycle state.
+      &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The project lifecycle state.
       &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The most recent time this resource was modified.
     },
   ],
@@ -349,7 +349,7 @@
 
 <div class="method">
     <code class="details" id="move">move(name, body=None, x__xgafv=None)</code>
-  <pre>Move a Project under a new resource parent. Returns an operation which can be used to track the process of the Project move workflow. Upon success, the Operation.response field will be populated with the moved Project. The caller must have `resourcemanager.projects.update` permission on the Project and have `resourcemanager.projects.move` permission on the Project&#x27;s current and proposed new parent. 
+  <pre>Move a project to another place in your resource hierarchy, under a new resource parent. Returns an operation which can be used to track the process of the project move workflow. Upon success, the `Operation.response` field will be populated with the moved project. The caller must have `resourcemanager.projects.update` permission on the project and have `resourcemanager.projects.move` permission on the project&#x27;s current and proposed new parent. If project has no current parent, or it currently does not have an associated organization resource, you will also need the `resourcemanager.projects.setIamPolicy` permission in the project. 
 
 Args:
   name: string, Required. The name of the project to move. (required)
@@ -391,25 +391,25 @@
 
 <div class="method">
     <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the attributes of the Project identified by the specified `name` (for example, `projects/415104041262`). At present this is only useful for updating the display_name and labels. Deleting all labels requires an update mask for labels field. The caller must have modify permissions for this Project.
+  <pre>Updates the `display_name` and labels of the project identified by the specified `name` (for example, `projects/415104041262`). Deleting all labels requires an update mask for labels field. The caller must have `resourcemanager.projects.update` permission for this project.
 
 Args:
-  name: string, Output only. The unique resource name of the Project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262` (required)
+  name: string, Output only. The unique resource name of the project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262` (required)
   body: object, The request body.
     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.
+{ # A project is a high-level Google Cloud entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time.
   &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. The time at which this resource was requested for deletion.
-  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
+  &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
   &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Project resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-  &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
+  &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the Project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
   &quot;parent&quot;: &quot;A String&quot;, # Optional. A reference to a parent Resource. eg., `organizations/123` or `folders/876`.
-  &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the Project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The Project lifecycle state.
+  &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The project lifecycle state.
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The most recent time this resource was modified.
 }
 
@@ -445,12 +445,12 @@
 
 <div class="method">
     <code class="details" id="search">search(pageSize=None, pageToken=None, query=None, x__xgafv=None)</code>
-  <pre>Search for Projects that the caller has the `resourcemanager.projects.get` permission on and satisfy the specified query. This method returns Projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.
+  <pre>Search for projects that the caller has both `resourcemanager.projects.get` permission on, and also satisfy the specified query. This method returns projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method.
 
 Args:
-  pageSize: integer, Optional. The maximum number of Projects to return in the response. The server can return fewer Projects than requested. If unspecified, server picks an appropriate default.
+  pageSize: integer, Optional. The maximum number of projects to return in the response. The server can return fewer projects than requested. If unspecified, server picks an appropriate default.
   pageToken: string, Optional. A pagination token returned from a previous call to ListProjects that indicates from where listing should continue.
-  query: string, Optional. A query string for searching for projects that the caller has `resourcemanager.projects.get` permission to. If multiple fields are included in the query, the it will return results that match any of the fields. Some eligible fields are: | Field | Description | |-------------------------|----------------------------------------------| | displayName, name | Filters by displayName. | | parent | Project&#x27;s parent. (e.g. folders/123, organizations/*) Prefer parent field over parent.type and parent.id. | | parent.type | Parent&#x27;s type: `folder` or `organization`. | | parent.id | Parent&#x27;s id number (e.g. 123) | | id, projectId | Filters by projectId. | | state, lifecycleState | Filters by state. | | labels | Filters by label name or value. | | labels. (where *key* is the name of a label) | Filters by label name. | Search expressions are case insensitive. Some examples queries: | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project&#x27;s name starts with &quot;how&quot;. | | name:Howl | The project&#x27;s name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project&#x27;s label `color` has the value `red`. | | labels.color:red labels.size:big | The project&#x27;s label `color` has the value `red` and its label `size` has the value `big`. | If no query is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission.
+  query: string, Optional. A query string for searching for projects that the caller has `resourcemanager.projects.get` permission to. If multiple fields are included in the query, the it will return results that match any of the fields. Some eligible fields are: | Field | Description | |-------------------------|----------------------------------------------| | displayName, name | Filters by displayName. | | parent | Project&#x27;s parent (for example: folders/123, organizations/*). Prefer parent field over parent.type and parent.id.| | parent.type | Parent&#x27;s type: `folder` or `organization`. | | parent.id | Parent&#x27;s id number (for example: 123) | | id, projectId | Filters by projectId. | | state, lifecycleState | Filters by state. | | labels | Filters by label name or value. | | labels.\ (where *key* is the name of a label) | Filters by label name.| Search expressions are case insensitive. Some examples queries: | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project&#x27;s name starts with &quot;how&quot;. | | name:Howl | The project&#x27;s name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project&#x27;s label `color` has the value `red`. | | labels.color:red labels.size:big | The project&#x27;s label `color` has the value `red` and its label `size` has the value `big`.| If no query is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -462,18 +462,18 @@
     { # A page of the response received from the SearchProjects method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page.
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.
   &quot;projects&quot;: [ # The list of Projects that matched the list filter query. 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.
+    { # A project is a high-level Google Cloud entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Creation time.
       &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. The time at which this resource was requested for deletion.
-      &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the Project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
+      &quot;displayName&quot;: &quot;A String&quot;, # Optional. A user-assigned display name of the project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project`
       &quot;etag&quot;: &quot;A String&quot;, # Output only. A checksum computed by the server based on the current value of the Project resource. This may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
-      &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
+      &quot;labels&quot;: { # Optional. 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: `&quot;myBusinessDimension&quot; : &quot;businessValue&quot;`
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the Project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique resource name of the project. It is an int64 generated number prefixed by &quot;projects/&quot;. Example: `projects/415104041262`
       &quot;parent&quot;: &quot;A String&quot;, # Optional. A reference to a parent Resource. eg., `organizations/123` or `folders/876`.
-      &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the Project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
-      &quot;state&quot;: &quot;A String&quot;, # Output only. The Project lifecycle state.
+      &quot;projectId&quot;: &quot;A String&quot;, # Immutable. The unique, user-assigned id of the project. It must be 6 to 30 lowercase ASCII letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123`
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The project lifecycle state.
       &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The most recent time this resource was modified.
     },
   ],
@@ -496,7 +496,7 @@
 
 <div class="method">
     <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
-  <pre>Sets the IAM access control policy for the specified Project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. NOTE: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited via Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + Membership changes that leave the project without any owners that have accepted the Terms of Service (ToS) will be rejected. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. + Calling this method requires enabling the App Engine Admin API.
+  <pre>Sets the IAM access control policy for the specified project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. Note: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited using the Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + Membership changes that leave the project without any owners that have accepted the Terms of Service (ToS) will be rejected. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. + Calling this method requires enabling the App Engine Admin API.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
@@ -581,7 +581,7 @@
 
 <div class="method">
     <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
-  <pre>Returns permissions that a caller has on the specified Project.
+  <pre>Returns permissions that a caller has on the specified project.
 
 Args:
   resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
@@ -611,10 +611,10 @@
 
 <div class="method">
     <code class="details" id="undelete">undelete(name, body=None, x__xgafv=None)</code>
-  <pre>Restores the Project identified by the specified `name` (for example, `projects/415104041262`). You can only use this method for a Project that has a lifecycle state of DELETE_REQUESTED. After deletion starts, the Project cannot be restored. The caller must have undelete permissions for this Project.
+  <pre>Restores the project identified by the specified `name` (for example, `projects/415104041262`). You can only use this method for a project that has a lifecycle state of DELETE_REQUESTED. After deletion starts, the project cannot be restored. The caller must have `resourcemanager.projects.undelete` permission for this project.
 
 Args:
-  name: string, Required. The name of the Project (for example, `projects/415104041262`). Required. (required)
+  name: string, Required. The name of the project (for example, `projects/415104041262`). Required. (required)
   body: object, The request body.
     The object takes the form of:
 
diff --git a/docs/dyn/cloudsearch_v1.settings.html b/docs/dyn/cloudsearch_v1.settings.html
index 51a6fc2..6d3ea95 100644
--- a/docs/dyn/cloudsearch_v1.settings.html
+++ b/docs/dyn/cloudsearch_v1.settings.html
@@ -87,10 +87,80 @@
 <p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getCustomer">getCustomer(x__xgafv=None)</a></code></p>
+<p class="firstline">Get customer settings. **Note:** This API requires an admin account to execute.</p>
+<p class="toc_element">
+  <code><a href="#updateCustomer">updateCustomer(body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Update customer settings. **Note:** This API requires an admin account to execute.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
   <pre>Close httplib2 connections.</pre>
 </div>
 
+<div class="method">
+    <code class="details" id="getCustomer">getCustomer(x__xgafv=None)</code>
+  <pre>Get customer settings. **Note:** This API requires an admin account to execute.
+
+Args:
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Represents settings at a customer level.
+  &quot;vpcSettings&quot;: { # VPC SC settings for the customer. If update_mask is empty then this field will be updated based on UpdateCustomerSettings request.
+    &quot;project&quot;: &quot;A String&quot;, # The resource name of the GCP Project to be used for VPC SC policy check. VPC security settings on this project will be honored for Cloud Search APIs after project_name has been updated through CustomerService. Format: projects/{project_id}
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateCustomer">updateCustomer(body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Update customer settings. **Note:** This API requires an admin account to execute.
+
+Args:
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Represents settings at a customer level.
+  &quot;vpcSettings&quot;: { # VPC SC settings for the customer. If update_mask is empty then this field will be updated based on UpdateCustomerSettings request.
+    &quot;project&quot;: &quot;A String&quot;, # The resource name of the GCP Project to be used for VPC SC policy check. VPC security settings on this project will be honored for Cloud Search APIs after project_name has been updated through CustomerService. Format: projects/{project_id}
+  },
+}
+
+  updateMask: string, Update mask to control which fields get updated. If you specify a field in the update_mask but don&#x27;t specify its value here, that field will be cleared. If the mask is not present or empty, all fields will be updated. Currently supported field paths: vpc_settings and audit_logging_settings
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/composer_v1.projects.locations.environments.html b/docs/dyn/composer_v1.projects.locations.environments.html
index 977dbcb..ea51143 100644
--- a/docs/dyn/composer_v1.projects.locations.environments.html
+++ b/docs/dyn/composer_v1.projects.locations.environments.html
@@ -165,7 +165,7 @@
       &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -322,7 +322,7 @@
       &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -420,7 +420,7 @@
           &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
             &quot;a_key&quot;: &quot;A String&quot;,
           },
-          &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+          &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
         },
         &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
           &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -526,7 +526,7 @@
       &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
diff --git a/docs/dyn/composer_v1beta1.projects.locations.environments.html b/docs/dyn/composer_v1beta1.projects.locations.environments.html
index 6861b37..c518b0b 100644
--- a/docs/dyn/composer_v1beta1.projects.locations.environments.html
+++ b/docs/dyn/composer_v1beta1.projects.locations.environments.html
@@ -174,7 +174,7 @@
       &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -337,7 +337,7 @@
       &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -441,7 +441,7 @@
           &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
             &quot;a_key&quot;: &quot;A String&quot;,
           },
-          &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+          &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
         },
         &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
           &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -553,7 +553,7 @@
       &quot;pypiPackages&quot;: { # Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name such as &quot;numpy&quot; and values are the lowercase extras and version specifier such as &quot;==1.12.0&quot;, &quot;[devel,gcp_api]&quot;, or &quot;[devel]&gt;=1.8.2, &lt;1.9.2&quot;. To specify a package without pinning it to a version specifier, use the empty string as the value.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;2&#x27;. Cannot be updated.
+      &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
diff --git a/docs/dyn/compute_alpha.addresses.html b/docs/dyn/compute_alpha.addresses.html
index e8f66f9..3321f3e 100644
--- a/docs/dyn/compute_alpha.addresses.html
+++ b/docs/dyn/compute_alpha.addresses.html
@@ -287,50 +287,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -525,50 +481,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -768,50 +680,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.autoscalers.html b/docs/dyn/compute_alpha.autoscalers.html
index ae7d1a6..16951fc 100644
--- a/docs/dyn/compute_alpha.autoscalers.html
+++ b/docs/dyn/compute_alpha.autoscalers.html
@@ -383,50 +383,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -807,50 +763,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1279,50 +1191,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1576,50 +1444,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.backendBuckets.html b/docs/dyn/compute_alpha.backendBuckets.html
index 96fb16c..a3f9e92 100644
--- a/docs/dyn/compute_alpha.backendBuckets.html
+++ b/docs/dyn/compute_alpha.backendBuckets.html
@@ -173,50 +173,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -300,50 +256,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -423,50 +335,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -851,50 +719,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1131,50 +955,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1260,50 +1040,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1905,50 +1641,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.backendServices.html b/docs/dyn/compute_alpha.backendServices.html
index 47dfa3f..b153706 100644
--- a/docs/dyn/compute_alpha.backendServices.html
+++ b/docs/dyn/compute_alpha.backendServices.html
@@ -179,50 +179,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -801,7 +757,7 @@
           &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
           &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
               #
-              # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+              # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
               #
               # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
               #
@@ -914,50 +870,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1037,50 +949,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1639,7 +1507,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
@@ -2224,7 +2092,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -2278,50 +2146,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2897,7 +2721,7 @@
       &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
       &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
@@ -3468,7 +3292,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -3522,50 +3346,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3651,50 +3431,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3780,50 +3516,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4408,7 +4100,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -4462,50 +4154,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.disks.html b/docs/dyn/compute_alpha.disks.html
index d41a2fc..95c1144 100644
--- a/docs/dyn/compute_alpha.disks.html
+++ b/docs/dyn/compute_alpha.disks.html
@@ -184,50 +184,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -624,50 +580,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -747,50 +659,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1395,50 +1263,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1743,50 +1567,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1873,50 +1653,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2452,50 +2188,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2763,50 +2455,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.externalVpnGateways.html b/docs/dyn/compute_alpha.externalVpnGateways.html
index 60fe595..996997b 100644
--- a/docs/dyn/compute_alpha.externalVpnGateways.html
+++ b/docs/dyn/compute_alpha.externalVpnGateways.html
@@ -152,50 +152,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -344,50 +300,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -559,50 +471,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.firewallPolicies.html b/docs/dyn/compute_alpha.firewallPolicies.html
index ab72501..d0c65af 100644
--- a/docs/dyn/compute_alpha.firewallPolicies.html
+++ b/docs/dyn/compute_alpha.firewallPolicies.html
@@ -194,50 +194,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -371,50 +327,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -493,50 +405,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -619,50 +487,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1196,50 +1020,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1481,50 +1261,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1686,50 +1422,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1864,50 +1556,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1986,50 +1634,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2108,50 +1712,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.firewalls.html b/docs/dyn/compute_alpha.firewalls.html
index 427a3e0..05b9d1e 100644
--- a/docs/dyn/compute_alpha.firewalls.html
+++ b/docs/dyn/compute_alpha.firewalls.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -419,50 +375,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -731,50 +643,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -947,50 +815,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.forwardingRules.html b/docs/dyn/compute_alpha.forwardingRules.html
index f6cfd34..7211cc7 100644
--- a/docs/dyn/compute_alpha.forwardingRules.html
+++ b/docs/dyn/compute_alpha.forwardingRules.html
@@ -270,6 +270,7 @@
             &quot;A String&quot;,
           ],
           &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+          &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
           &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
           &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
           &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -399,50 +400,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -613,6 +570,7 @@
     &quot;A String&quot;,
   ],
   &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+  &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -780,6 +738,7 @@
     &quot;A String&quot;,
   ],
   &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+  &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -849,50 +808,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1080,6 +995,7 @@
         &quot;A String&quot;,
       ],
       &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+      &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
       &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
       &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -1278,6 +1194,7 @@
     &quot;A String&quot;,
   ],
   &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+  &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -1347,50 +1264,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1480,50 +1353,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1610,50 +1439,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.globalAddresses.html b/docs/dyn/compute_alpha.globalAddresses.html
index 3d32b17..175138f 100644
--- a/docs/dyn/compute_alpha.globalAddresses.html
+++ b/docs/dyn/compute_alpha.globalAddresses.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -407,50 +363,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -643,50 +555,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.globalForwardingRules.html b/docs/dyn/compute_alpha.globalForwardingRules.html
index 7ec0896..a499c46 100644
--- a/docs/dyn/compute_alpha.globalForwardingRules.html
+++ b/docs/dyn/compute_alpha.globalForwardingRules.html
@@ -158,50 +158,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -371,6 +327,7 @@
     &quot;A String&quot;,
   ],
   &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+  &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -537,6 +494,7 @@
     &quot;A String&quot;,
   ],
   &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+  &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -606,50 +564,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -836,6 +750,7 @@
         &quot;A String&quot;,
       ],
       &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+      &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
       &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
       &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -1033,6 +948,7 @@
     &quot;A String&quot;,
   ],
   &quot;pscConnectionId&quot;: &quot;A String&quot;, # [Output Only] The PSC connection id of the PSC Forwarding Rule.
+  &quot;pscConnectionStatus&quot;: &quot;A String&quot;,
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional forwarding rule resides. This field is not applicable to global forwarding rules. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
@@ -1102,50 +1018,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1229,50 +1101,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1358,50 +1186,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.globalNetworkEndpointGroups.html b/docs/dyn/compute_alpha.globalNetworkEndpointGroups.html
index 0218151..7cdfbde 100644
--- a/docs/dyn/compute_alpha.globalNetworkEndpointGroups.html
+++ b/docs/dyn/compute_alpha.globalNetworkEndpointGroups.html
@@ -172,50 +172,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -299,50 +255,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -440,50 +352,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -792,50 +660,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.globalOperations.html b/docs/dyn/compute_alpha.globalOperations.html
index d22000b..dc8a147 100644
--- a/docs/dyn/compute_alpha.globalOperations.html
+++ b/docs/dyn/compute_alpha.globalOperations.html
@@ -162,50 +162,6 @@
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
           &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
           &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-          &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-              #
-              # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-              #
-              # Example 1: Pack and unpack a message in C++.
-              #
-              # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-              #
-              # Example 2: Pack and unpack a message in Java.
-              #
-              # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-              #
-              # Example 3: Pack and unpack a message in Python.
-              #
-              # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-              #
-              # Example 4: Pack and unpack a message in Go
-              #
-              # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-              #
-              # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-              #
-              #
-              #
-              # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-              #
-              # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-              #
-              # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-              #
-              # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-              #
-              # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-            &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-                #
-                # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-                #
-                # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-                #
-                # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-                #
-                # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-            &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-          },
           &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
           &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
           &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -340,50 +296,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -474,50 +386,6 @@
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
       &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
       &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-      &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-          #
-          # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-          #
-          # Example 1: Pack and unpack a message in C++.
-          #
-          # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-          #
-          # Example 2: Pack and unpack a message in Java.
-          #
-          # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-          #
-          # Example 3: Pack and unpack a message in Python.
-          #
-          # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-          #
-          # Example 4: Pack and unpack a message in Go
-          #
-          # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-          #
-          # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-          #
-          #
-          #
-          # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-          #
-          # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-          #
-          # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-        &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-            #
-            # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-            #
-            # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-            #
-            # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-            #
-            # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-        &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-      },
       &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
       &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
       &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -625,50 +493,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.globalOrganizationOperations.html b/docs/dyn/compute_alpha.globalOrganizationOperations.html
index 3bad8a6..ba99410 100644
--- a/docs/dyn/compute_alpha.globalOrganizationOperations.html
+++ b/docs/dyn/compute_alpha.globalOrganizationOperations.html
@@ -148,50 +148,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -282,50 +238,6 @@
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
       &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
       &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-      &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-          #
-          # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-          #
-          # Example 1: Pack and unpack a message in C++.
-          #
-          # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-          #
-          # Example 2: Pack and unpack a message in Java.
-          #
-          # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-          #
-          # Example 3: Pack and unpack a message in Python.
-          #
-          # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-          #
-          # Example 4: Pack and unpack a message in Go
-          #
-          # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-          #
-          # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-          #
-          #
-          #
-          # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-          #
-          # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-          #
-          # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-        &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-            #
-            # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-            #
-            # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-            #
-            # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-            #
-            # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-        &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-      },
       &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
       &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
       &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.globalPublicDelegatedPrefixes.html b/docs/dyn/compute_alpha.globalPublicDelegatedPrefixes.html
index fae7b29..f7febaa 100644
--- a/docs/dyn/compute_alpha.globalPublicDelegatedPrefixes.html
+++ b/docs/dyn/compute_alpha.globalPublicDelegatedPrefixes.html
@@ -149,50 +149,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -343,50 +299,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -585,50 +497,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.healthChecks.html b/docs/dyn/compute_alpha.healthChecks.html
index a554a12..80e605e 100644
--- a/docs/dyn/compute_alpha.healthChecks.html
+++ b/docs/dyn/compute_alpha.healthChecks.html
@@ -371,50 +371,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -771,50 +727,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1219,50 +1131,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1503,50 +1371,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.httpHealthChecks.html b/docs/dyn/compute_alpha.httpHealthChecks.html
index 914e8e1..684ce79 100644
--- a/docs/dyn/compute_alpha.httpHealthChecks.html
+++ b/docs/dyn/compute_alpha.httpHealthChecks.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -329,50 +285,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -551,50 +463,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -722,50 +590,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.httpsHealthChecks.html b/docs/dyn/compute_alpha.httpsHealthChecks.html
index 6e9a2b3..a68b829 100644
--- a/docs/dyn/compute_alpha.httpsHealthChecks.html
+++ b/docs/dyn/compute_alpha.httpsHealthChecks.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -329,50 +285,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -551,50 +463,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -722,50 +590,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.images.html b/docs/dyn/compute_alpha.images.html
index 4ff199f..546adc9 100644
--- a/docs/dyn/compute_alpha.images.html
+++ b/docs/dyn/compute_alpha.images.html
@@ -167,50 +167,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -312,50 +268,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1167,50 +1079,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1692,50 +1560,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2264,50 +2088,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.instanceGroupManagers.html b/docs/dyn/compute_alpha.instanceGroupManagers.html
index ebb49af..d96c632 100644
--- a/docs/dyn/compute_alpha.instanceGroupManagers.html
+++ b/docs/dyn/compute_alpha.instanceGroupManagers.html
@@ -139,7 +139,7 @@
 <p class="firstline">Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body=None, requestId=None)</a></code></p>
-<p class="firstline">Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
+<p class="firstline">Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.</p>
 <p class="toc_element">
   <code><a href="#resize">resize(project, zone, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.</p>
@@ -239,50 +239,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -638,50 +594,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -809,50 +721,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -932,50 +800,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1068,50 +892,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1195,50 +975,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1699,50 +1435,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2187,6 +1879,7 @@
         },
       },
       &quot;tag&quot;: &quot;A String&quot;, # [Output Only] Tag describing the version.
+      &quot;targetStatus&quot;: &quot;A String&quot;, # [Output Only] The eventual status of the instance. The instance group manager will not be identified as stable till each managed instance reaches its targetStatus.
       &quot;version&quot;: { # [Output Only] Intended version of this instance.
         &quot;instanceTemplate&quot;: &quot;A String&quot;, # [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.
         &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the version.
@@ -2553,50 +2246,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2719,50 +2368,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2795,7 +2400,7 @@
 
 <div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body=None, requestId=None)</code>
-  <pre>Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
+  <pre>Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group&#x27;s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.
 
 If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
 
@@ -2855,50 +2460,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2987,50 +2548,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3128,50 +2645,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3266,50 +2739,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3412,50 +2841,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3542,50 +2927,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3675,50 +3016,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3813,50 +3110,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3954,50 +3207,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4095,50 +3304,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4431,50 +3596,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4597,50 +3718,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.instanceGroups.html b/docs/dyn/compute_alpha.instanceGroups.html
index 4a8270c..6f3ef02 100644
--- a/docs/dyn/compute_alpha.instanceGroups.html
+++ b/docs/dyn/compute_alpha.instanceGroups.html
@@ -177,50 +177,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -421,50 +377,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -637,50 +549,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -952,50 +820,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1088,50 +912,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.instanceTemplates.html b/docs/dyn/compute_alpha.instanceTemplates.html
index 2d90625..78bd5d7 100644
--- a/docs/dyn/compute_alpha.instanceTemplates.html
+++ b/docs/dyn/compute_alpha.instanceTemplates.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1245,50 +1201,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.instances.html b/docs/dyn/compute_alpha.instances.html
index a62d5b6..38585e5 100644
--- a/docs/dyn/compute_alpha.instances.html
+++ b/docs/dyn/compute_alpha.instances.html
@@ -97,7 +97,7 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance, requestId=None)</a></code></p>
-<p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
+<p class="firstline">Deletes the specified Instance resource. For more information, see Deleting an instance.</p>
 <p class="toc_element">
   <code><a href="#deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface, requestId=None)</a></code></p>
 <p class="firstline">Deletes an access config from an instance's network interface.</p>
@@ -305,50 +305,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -437,50 +393,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1254,50 +1166,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1340,7 +1208,7 @@
 
 {
   &quot;count&quot;: &quot;A String&quot;, # The maximum number of instances to create.
-  &quot;instance&quot;: { # Represents an Instance resource. # The instance defining the VM instances to be created.
+  &quot;instance&quot;: { # Represents an Instance resource. # DEPRECATED: Please use instance_properties instead.
       #
       # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
@@ -2136,21 +2004,21 @@
       ],
     },
   },
-  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).
-    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, like: zones/us-central1-a.
+  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). # Policy for chosing target zone.
+    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.
       &quot;a_key&quot;: {
-        &quot;preference&quot;: &quot;A String&quot;,
+        &quot;preference&quot;: &quot;A String&quot;, # Preference for a given locaction: ALLOW or DENY.
       },
     },
   },
-  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created.
-  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or predefined_names must be set. The pattern should contain one consecutive sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names like inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
+  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.
+  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern should contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names such as inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
   &quot;perInstanceProperties&quot;: { # Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.
     &quot;a_key&quot;: { # Per-instance properties to be set on individual instances. To be extended in the future.
       &quot;name&quot;: &quot;A String&quot;, # This field is only temporary. It will be removed. Do not use it.
     },
   },
-  &quot;predefinedNames&quot;: [ # List of predefined names. The number of names provided must be equal to count.
+  &quot;predefinedNames&quot;: [ # DEPRECATED: Please use per_instance_properties instead.
     &quot;A String&quot;,
   ],
   &quot;sourceInstanceTemplate&quot;: &quot;A String&quot;, # Specifies the instance template from which to create instances. You may combine sourceInstanceTemplate with instanceProperties to override specific values from an existing instance template. Bulk API follows the semantics of JSON Merge Patch described by RFC 7396.
@@ -2204,50 +2072,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2285,7 +2109,7 @@
 
 <div class="method">
     <code class="details" id="delete">delete(project, zone, instance, requestId=None)</code>
-  <pre>Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.
+  <pre>Deletes the specified Instance resource. For more information, see Deleting an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -2332,50 +2156,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2457,50 +2237,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2581,50 +2317,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3262,7 +2954,7 @@
       &quot;id&quot;: &quot;A String&quot;, # The unique identifier for the security policy. This identifier is defined by the server.
       &quot;rules&quot;: [ # The rules that apply to the network.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -4211,50 +3903,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4920,50 +4568,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -5043,50 +4647,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -5207,50 +4767,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -5342,50 +4858,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -5467,50 +4939,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6046,50 +5474,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6181,50 +5565,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6311,50 +5651,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6450,50 +5746,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6580,50 +5832,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6711,50 +5919,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6862,50 +6026,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6995,50 +6115,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7125,50 +6201,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7255,50 +6287,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7390,50 +6378,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7508,50 +6452,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7631,50 +6531,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7795,50 +6651,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -7919,50 +6731,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -8043,50 +6811,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -8657,50 +7381,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -8802,50 +7482,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -8932,50 +7568,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -9138,50 +7730,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -9270,50 +7818,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -9402,50 +7906,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.interconnectAttachments.html b/docs/dyn/compute_alpha.interconnectAttachments.html
index e9acbc6..ba41f04 100644
--- a/docs/dyn/compute_alpha.interconnectAttachments.html
+++ b/docs/dyn/compute_alpha.interconnectAttachments.html
@@ -177,10 +177,12 @@
           &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
               # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
               # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+              # Not currently available in all Interconnect locations.
           &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
           &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+              # Not currently available in all Interconnect locations.
             &quot;A String&quot;,
           ],
           &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -324,50 +326,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -442,10 +400,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -728,10 +688,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -816,50 +778,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -951,10 +869,12 @@
       &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
           # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
           # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+          # Not currently available in all Interconnect locations.
       &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
       &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+          # Not currently available in all Interconnect locations.
         &quot;A String&quot;,
       ],
       &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -1071,10 +991,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -1158,50 +1080,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1737,50 +1615,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.interconnects.html b/docs/dyn/compute_alpha.interconnects.html
index aeea279..4093ea0 100644
--- a/docs/dyn/compute_alpha.interconnects.html
+++ b/docs/dyn/compute_alpha.interconnects.html
@@ -164,50 +164,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -697,50 +653,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1021,50 +933,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1593,50 +1461,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.licenses.html b/docs/dyn/compute_alpha.licenses.html
index 6f80fc3..0e8ecdc 100644
--- a/docs/dyn/compute_alpha.licenses.html
+++ b/docs/dyn/compute_alpha.licenses.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -525,50 +481,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.machineImages.html b/docs/dyn/compute_alpha.machineImages.html
index ad6df6a..94bda54 100644
--- a/docs/dyn/compute_alpha.machineImages.html
+++ b/docs/dyn/compute_alpha.machineImages.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -980,50 +936,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.networkEndpointGroups.html b/docs/dyn/compute_alpha.networkEndpointGroups.html
index 9db3b27..b52945e 100644
--- a/docs/dyn/compute_alpha.networkEndpointGroups.html
+++ b/docs/dyn/compute_alpha.networkEndpointGroups.html
@@ -368,50 +368,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -496,50 +452,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -638,50 +550,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -992,50 +860,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.networkFirewallPolicies.html b/docs/dyn/compute_alpha.networkFirewallPolicies.html
index bda3e06..2ef3067 100644
--- a/docs/dyn/compute_alpha.networkFirewallPolicies.html
+++ b/docs/dyn/compute_alpha.networkFirewallPolicies.html
@@ -189,50 +189,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -367,50 +323,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -490,50 +402,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -617,50 +485,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1198,50 +1022,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1543,50 +1323,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1722,50 +1458,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1845,50 +1537,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1968,50 +1616,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.networks.html b/docs/dyn/compute_alpha.networks.html
index bc3dea5..2c6c14e 100644
--- a/docs/dyn/compute_alpha.networks.html
+++ b/docs/dyn/compute_alpha.networks.html
@@ -205,50 +205,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -332,50 +288,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -607,7 +519,7 @@
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the security policy. This identifier is defined by the server.
       &quot;rules&quot;: [ # The rules that apply to the network.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -816,50 +728,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1306,50 +1174,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1435,50 +1259,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1557,50 +1337,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1726,50 +1462,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.nodeGroups.html b/docs/dyn/compute_alpha.nodeGroups.html
index 695bf95..0cde3ec 100644
--- a/docs/dyn/compute_alpha.nodeGroups.html
+++ b/docs/dyn/compute_alpha.nodeGroups.html
@@ -182,50 +182,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -420,50 +376,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -552,50 +464,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -952,50 +820,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1291,50 +1115,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1867,50 +1647,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.nodeTemplates.html b/docs/dyn/compute_alpha.nodeTemplates.html
index 708d328..7e8a2ad 100644
--- a/docs/dyn/compute_alpha.nodeTemplates.html
+++ b/docs/dyn/compute_alpha.nodeTemplates.html
@@ -287,50 +287,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -716,50 +672,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.organizationSecurityPolicies.html b/docs/dyn/compute_alpha.organizationSecurityPolicies.html
index 762c4de..f968f8f 100644
--- a/docs/dyn/compute_alpha.organizationSecurityPolicies.html
+++ b/docs/dyn/compute_alpha.organizationSecurityPolicies.html
@@ -184,50 +184,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -268,7 +224,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -418,50 +374,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -545,50 +457,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -666,50 +534,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -789,7 +613,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -935,7 +759,7 @@
   An object of the form:
 
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1092,7 +916,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1248,50 +1072,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1389,7 +1169,7 @@
       &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
       &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1604,50 +1384,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1726,7 +1462,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1881,50 +1617,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1965,7 +1657,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -2116,50 +1808,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2238,50 +1886,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2360,50 +1964,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.packetMirrorings.html b/docs/dyn/compute_alpha.packetMirrorings.html
index f70596b..6d92f98 100644
--- a/docs/dyn/compute_alpha.packetMirrorings.html
+++ b/docs/dyn/compute_alpha.packetMirrorings.html
@@ -296,50 +296,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -552,50 +508,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -856,50 +768,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.projects.html b/docs/dyn/compute_alpha.projects.html
index 7270592..503acfe 100644
--- a/docs/dyn/compute_alpha.projects.html
+++ b/docs/dyn/compute_alpha.projects.html
@@ -178,50 +178,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -309,50 +265,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -430,50 +342,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -561,50 +429,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -958,50 +782,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1093,50 +873,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1230,50 +966,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1358,50 +1050,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1486,50 +1134,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1615,50 +1219,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.publicAdvertisedPrefixes.html b/docs/dyn/compute_alpha.publicAdvertisedPrefixes.html
index 8f0364c..66c6533 100644
--- a/docs/dyn/compute_alpha.publicAdvertisedPrefixes.html
+++ b/docs/dyn/compute_alpha.publicAdvertisedPrefixes.html
@@ -149,50 +149,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -337,50 +293,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -573,50 +485,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.publicDelegatedPrefixes.html b/docs/dyn/compute_alpha.publicDelegatedPrefixes.html
index 962ffe2..40b81a0 100644
--- a/docs/dyn/compute_alpha.publicDelegatedPrefixes.html
+++ b/docs/dyn/compute_alpha.publicDelegatedPrefixes.html
@@ -263,50 +263,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -459,50 +415,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -703,50 +615,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionAutoscalers.html b/docs/dyn/compute_alpha.regionAutoscalers.html
index d6b5737..41e8370 100644
--- a/docs/dyn/compute_alpha.regionAutoscalers.html
+++ b/docs/dyn/compute_alpha.regionAutoscalers.html
@@ -156,50 +156,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -580,50 +536,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1052,50 +964,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1349,50 +1217,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionBackendServices.html b/docs/dyn/compute_alpha.regionBackendServices.html
index 1b68af6..d55d744 100644
--- a/docs/dyn/compute_alpha.regionBackendServices.html
+++ b/docs/dyn/compute_alpha.regionBackendServices.html
@@ -159,50 +159,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -762,7 +718,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
@@ -1345,7 +1301,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -1399,50 +1355,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2019,7 +1931,7 @@
       &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
       &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
@@ -2591,7 +2503,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -2645,50 +2557,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3275,7 +3143,7 @@
   &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -3329,50 +3197,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionCommitments.html b/docs/dyn/compute_alpha.regionCommitments.html
index 85d236f..b857572 100644
--- a/docs/dyn/compute_alpha.regionCommitments.html
+++ b/docs/dyn/compute_alpha.regionCommitments.html
@@ -486,50 +486,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -829,50 +785,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionDisks.html b/docs/dyn/compute_alpha.regionDisks.html
index 2bb4054..9dfeebc 100644
--- a/docs/dyn/compute_alpha.regionDisks.html
+++ b/docs/dyn/compute_alpha.regionDisks.html
@@ -175,50 +175,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -381,50 +337,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -504,50 +416,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1152,50 +1020,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1500,50 +1324,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1630,50 +1410,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2209,50 +1945,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionHealthCheckServices.html b/docs/dyn/compute_alpha.regionHealthCheckServices.html
index 7f8df7b..f6e3e71 100644
--- a/docs/dyn/compute_alpha.regionHealthCheckServices.html
+++ b/docs/dyn/compute_alpha.regionHealthCheckServices.html
@@ -268,50 +268,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -468,50 +424,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -716,50 +628,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionHealthChecks.html b/docs/dyn/compute_alpha.regionHealthChecks.html
index b86f3ba..e2b33f6 100644
--- a/docs/dyn/compute_alpha.regionHealthChecks.html
+++ b/docs/dyn/compute_alpha.regionHealthChecks.html
@@ -156,50 +156,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -558,50 +514,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1008,50 +920,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1294,50 +1162,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionInPlaceSnapshots.html b/docs/dyn/compute_alpha.regionInPlaceSnapshots.html
index ea8284c..314b1a0 100644
--- a/docs/dyn/compute_alpha.regionInPlaceSnapshots.html
+++ b/docs/dyn/compute_alpha.regionInPlaceSnapshots.html
@@ -161,50 +161,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -552,50 +508,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1219,50 +1131,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionInstanceGroupManagers.html b/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
index dd61d13..f23d6ad 100644
--- a/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_alpha.regionInstanceGroupManagers.html
@@ -133,7 +133,7 @@
 <p class="firstline">Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body=None, requestId=None)</a></code></p>
-<p class="firstline">Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
+<p class="firstline">Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.</p>
 <p class="toc_element">
   <code><a href="#resize">resize(project, region, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances.</p>
@@ -233,50 +233,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -372,50 +328,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -543,50 +455,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -666,50 +534,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -759,7 +583,7 @@
   &quot;instances&quot;: [ # The URLs of one or more instances to delete. This can be a full URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
     &quot;A String&quot;,
   ],
-  &quot;skipInapplicableInstances&quot;: True or False, # Skip instances which cannot be deleted (instances not belonging to this managed group, already being deleted or being abandoned). If `false`, fail whole flow, if such instance is passed.
+  &quot;skipInapplicableInstances&quot;: True or False, # Skip instances which cannot be deleted (instances not belonging to this managed group, already being deleted or being abandoned). If `false`, fail whole flow, if such instance is passed. DEPRECATED: Use skip_instances_on_validation_error instead.
 }
 
   requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
@@ -803,50 +627,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -930,50 +710,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1434,50 +1170,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1922,6 +1614,7 @@
         },
       },
       &quot;tag&quot;: &quot;A String&quot;, # [Output Only] Tag describing the version.
+      &quot;targetStatus&quot;: &quot;A String&quot;, # [Output Only] The eventual status of the instance. The instance group manager will not be identified as stable till each managed instance reaches its targetStatus.
       &quot;version&quot;: { # [Output Only] Intended version of this instance.
         &quot;instanceTemplate&quot;: &quot;A String&quot;, # [Output Only] The intended template of the instance. This field is empty when current_action is one of { DELETING, ABANDONING }.
         &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the version.
@@ -2288,50 +1981,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2454,50 +2103,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2530,7 +2135,7 @@
 
 <div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body=None, requestId=None)</code>
-  <pre>Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
+  <pre>Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group&#x27;s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.
 
 If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
 
@@ -2590,50 +2195,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2718,50 +2279,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2861,50 +2378,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2999,50 +2472,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3145,50 +2574,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3275,50 +2660,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3408,50 +2749,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3546,50 +2843,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3687,50 +2940,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3828,50 +3037,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4164,50 +3329,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4330,50 +3451,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionInstanceGroups.html b/docs/dyn/compute_alpha.regionInstanceGroups.html
index 7848481..da53203 100644
--- a/docs/dyn/compute_alpha.regionInstanceGroups.html
+++ b/docs/dyn/compute_alpha.regionInstanceGroups.html
@@ -395,50 +395,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionInstances.html b/docs/dyn/compute_alpha.regionInstances.html
index e56244d..dc4ff1f 100644
--- a/docs/dyn/compute_alpha.regionInstances.html
+++ b/docs/dyn/compute_alpha.regionInstances.html
@@ -93,7 +93,7 @@
 
 {
   &quot;count&quot;: &quot;A String&quot;, # The maximum number of instances to create.
-  &quot;instance&quot;: { # Represents an Instance resource. # The instance defining the VM instances to be created.
+  &quot;instance&quot;: { # Represents an Instance resource. # DEPRECATED: Please use instance_properties instead.
       #
       # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
@@ -889,21 +889,21 @@
       ],
     },
   },
-  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).
-    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, like: zones/us-central1-a.
+  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). # Policy for chosing target zone.
+    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.
       &quot;a_key&quot;: {
-        &quot;preference&quot;: &quot;A String&quot;,
+        &quot;preference&quot;: &quot;A String&quot;, # Preference for a given locaction: ALLOW or DENY.
       },
     },
   },
-  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created.
-  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or predefined_names must be set. The pattern should contain one consecutive sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names like inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
+  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.
+  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern should contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names such as inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
   &quot;perInstanceProperties&quot;: { # Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.
     &quot;a_key&quot;: { # Per-instance properties to be set on individual instances. To be extended in the future.
       &quot;name&quot;: &quot;A String&quot;, # This field is only temporary. It will be removed. Do not use it.
     },
   },
-  &quot;predefinedNames&quot;: [ # List of predefined names. The number of names provided must be equal to count.
+  &quot;predefinedNames&quot;: [ # DEPRECATED: Please use per_instance_properties instead.
     &quot;A String&quot;,
   ],
   &quot;sourceInstanceTemplate&quot;: &quot;A String&quot;, # Specifies the instance template from which to create instances. You may combine sourceInstanceTemplate with instanceProperties to override specific values from an existing instance template. Bulk API follows the semantics of JSON Merge Patch described by RFC 7396.
@@ -957,50 +957,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionInstantSnapshots.html b/docs/dyn/compute_alpha.regionInstantSnapshots.html
index 3cfde3c..7d9bbbe 100644
--- a/docs/dyn/compute_alpha.regionInstantSnapshots.html
+++ b/docs/dyn/compute_alpha.regionInstantSnapshots.html
@@ -164,50 +164,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -311,50 +267,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -710,50 +622,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1381,50 +1249,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionNetworkEndpointGroups.html b/docs/dyn/compute_alpha.regionNetworkEndpointGroups.html
index 0ec3dff..40d3ae0 100644
--- a/docs/dyn/compute_alpha.regionNetworkEndpointGroups.html
+++ b/docs/dyn/compute_alpha.regionNetworkEndpointGroups.html
@@ -147,50 +147,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -501,50 +457,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionNetworkFirewallPolicies.html b/docs/dyn/compute_alpha.regionNetworkFirewallPolicies.html
index cf53756..1d81d03 100644
--- a/docs/dyn/compute_alpha.regionNetworkFirewallPolicies.html
+++ b/docs/dyn/compute_alpha.regionNetworkFirewallPolicies.html
@@ -190,50 +190,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -369,50 +325,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -493,50 +405,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -621,50 +489,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1207,50 +1031,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1554,50 +1334,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1734,50 +1470,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1858,50 +1550,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1982,50 +1630,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionNotificationEndpoints.html b/docs/dyn/compute_alpha.regionNotificationEndpoints.html
index efcfd14..d872b78 100644
--- a/docs/dyn/compute_alpha.regionNotificationEndpoints.html
+++ b/docs/dyn/compute_alpha.regionNotificationEndpoints.html
@@ -258,50 +258,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -444,50 +400,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionOperations.html b/docs/dyn/compute_alpha.regionOperations.html
index c8186f1..2687291 100644
--- a/docs/dyn/compute_alpha.regionOperations.html
+++ b/docs/dyn/compute_alpha.regionOperations.html
@@ -153,50 +153,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -288,50 +244,6 @@
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
       &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
       &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-      &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-          #
-          # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-          #
-          # Example 1: Pack and unpack a message in C++.
-          #
-          # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-          #
-          # Example 2: Pack and unpack a message in Java.
-          #
-          # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-          #
-          # Example 3: Pack and unpack a message in Python.
-          #
-          # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-          #
-          # Example 4: Pack and unpack a message in Go
-          #
-          # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-          #
-          # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-          #
-          #
-          #
-          # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-          #
-          # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-          #
-          # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-        &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-            #
-            # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-            #
-            # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-            #
-            # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-            #
-            # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-        &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-      },
       &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
       &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
       &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -440,50 +352,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionSslCertificates.html b/docs/dyn/compute_alpha.regionSslCertificates.html
index 4289738..d022411 100644
--- a/docs/dyn/compute_alpha.regionSslCertificates.html
+++ b/docs/dyn/compute_alpha.regionSslCertificates.html
@@ -150,50 +150,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -378,50 +334,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionTargetHttpProxies.html b/docs/dyn/compute_alpha.regionTargetHttpProxies.html
index e412fb0..21721c3 100644
--- a/docs/dyn/compute_alpha.regionTargetHttpProxies.html
+++ b/docs/dyn/compute_alpha.regionTargetHttpProxies.html
@@ -153,50 +153,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -355,50 +311,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -577,50 +489,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionTargetHttpsProxies.html b/docs/dyn/compute_alpha.regionTargetHttpsProxies.html
index 8887ddd..9dcb191 100644
--- a/docs/dyn/compute_alpha.regionTargetHttpsProxies.html
+++ b/docs/dyn/compute_alpha.regionTargetHttpsProxies.html
@@ -156,50 +156,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -404,50 +360,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -651,50 +563,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -781,50 +649,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.regionUrlMaps.html b/docs/dyn/compute_alpha.regionUrlMaps.html
index c5f4f0c..cf5d0db 100644
--- a/docs/dyn/compute_alpha.regionUrlMaps.html
+++ b/docs/dyn/compute_alpha.regionUrlMaps.html
@@ -158,50 +158,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2084,50 +2040,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -2213,50 +2125,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -4187,50 +4055,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -5233,50 +5057,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.reservations.html b/docs/dyn/compute_alpha.reservations.html
index af719f8..8bd5d9e 100644
--- a/docs/dyn/compute_alpha.reservations.html
+++ b/docs/dyn/compute_alpha.reservations.html
@@ -289,50 +289,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -716,50 +672,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -952,50 +864,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.resourcePolicies.html b/docs/dyn/compute_alpha.resourcePolicies.html
index 09ea7d7..cba9d7e 100644
--- a/docs/dyn/compute_alpha.resourcePolicies.html
+++ b/docs/dyn/compute_alpha.resourcePolicies.html
@@ -330,50 +330,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -843,50 +799,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.routers.html b/docs/dyn/compute_alpha.routers.html
index d169a06..774a74c 100644
--- a/docs/dyn/compute_alpha.routers.html
+++ b/docs/dyn/compute_alpha.routers.html
@@ -225,6 +225,7 @@
           &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+              # Not currently available in all Interconnect locations.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
             {
@@ -413,50 +414,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -573,6 +530,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1120,6 +1078,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1248,50 +1207,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1425,6 +1340,7 @@
       &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+          # Not currently available in all Interconnect locations.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
         {
@@ -1628,6 +1544,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1756,50 +1673,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1915,6 +1788,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -2081,6 +1955,7 @@
     &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
     &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
     &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+        # Not currently available in all Interconnect locations.
     &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
       {
@@ -2283,6 +2158,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -2411,50 +2287,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.routes.html b/docs/dyn/compute_alpha.routes.html
index 5c28a2e..9620652 100644
--- a/docs/dyn/compute_alpha.routes.html
+++ b/docs/dyn/compute_alpha.routes.html
@@ -149,50 +149,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -373,50 +329,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.securityPolicies.html b/docs/dyn/compute_alpha.securityPolicies.html
index 054857b..6bfe333 100644
--- a/docs/dyn/compute_alpha.securityPolicies.html
+++ b/docs/dyn/compute_alpha.securityPolicies.html
@@ -128,7 +128,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -274,50 +274,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -401,50 +357,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -525,7 +437,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -653,7 +565,7 @@
   An object of the form:
 
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -811,7 +723,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -967,50 +879,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1108,7 +976,7 @@
       &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
       &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1347,7 +1215,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1502,50 +1370,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1587,7 +1411,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1734,50 +1558,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1852,50 +1632,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1979,50 +1715,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.serviceAttachments.html b/docs/dyn/compute_alpha.serviceAttachments.html
index 7282058..6a925d9 100644
--- a/docs/dyn/compute_alpha.serviceAttachments.html
+++ b/docs/dyn/compute_alpha.serviceAttachments.html
@@ -102,6 +102,9 @@
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
+  <code><a href="#patch">patch(project, region, serviceAttachment, body=None, requestId=None)</a></code></p>
+<p class="firstline">Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.</p>
+<p class="toc_element">
   <code><a href="#setIamPolicy">setIamPolicy(project, region, resource, body=None)</a></code></p>
 <p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.</p>
 <p class="toc_element">
@@ -141,17 +144,36 @@
       &quot;resources&quot;: [ # A list of ServiceAttachments contained in this scope.
         { # Represents a ServiceAttachment resource.
             #
-            # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+            # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+          &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+            { # [Output Only] A connection connected to this service attachment.
+              &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+              &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+              &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+              &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+            },
+          ],
           &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
+          &quot;consumerAcceptLists&quot;: [ # Projects that are allowed to connect to this service attachment.
+            {
+              &quot;connectionLimit&quot;: 42, # The value of the limit to set.
+              &quot;projectIdOrNum&quot;: &quot;A String&quot;, # The project id or number for the project to set the limit for.
+            },
+          ],
           &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-            { # [Output Only] A consumer forwarding rule connected to this service attachment.
+            { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
               &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+              &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
               &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
             },
           ],
+          &quot;consumerRejectLists&quot;: [ # Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.
+            &quot;A String&quot;,
+          ],
           &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;enableProxyProtocol&quot;: True or False, # If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.
+          &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource type. The server generates this identifier.
           &quot;kind&quot;: &quot;compute#serviceAttachment&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
           &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -159,8 +181,13 @@
             &quot;A String&quot;,
           ],
           &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+          &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+            &quot;high&quot;: &quot;A String&quot;,
+            &quot;low&quot;: &quot;A String&quot;,
+          },
           &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
           &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+          &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
         },
       ],
       &quot;warning&quot;: { # Informational warning which replaces the list of service attachments when the list is empty.
@@ -264,50 +291,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -352,17 +335,36 @@
 
     { # Represents a ServiceAttachment resource.
     #
-    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+  &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+    { # [Output Only] A connection connected to this service attachment.
+      &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+      &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+    },
+  ],
   &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
+  &quot;consumerAcceptLists&quot;: [ # Projects that are allowed to connect to this service attachment.
+    {
+      &quot;connectionLimit&quot;: 42, # The value of the limit to set.
+      &quot;projectIdOrNum&quot;: &quot;A String&quot;, # The project id or number for the project to set the limit for.
+    },
+  ],
   &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-    { # [Output Only] A consumer forwarding rule connected to this service attachment.
+    { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
       &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
       &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
     },
   ],
+  &quot;consumerRejectLists&quot;: [ # Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.
+    &quot;A String&quot;,
+  ],
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;enableProxyProtocol&quot;: True or False, # If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.
+  &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource type. The server generates this identifier.
   &quot;kind&quot;: &quot;compute#serviceAttachment&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -370,8 +372,13 @@
     &quot;A String&quot;,
   ],
   &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+  &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+    &quot;high&quot;: &quot;A String&quot;,
+    &quot;low&quot;: &quot;A String&quot;,
+  },
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+  &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
 }</pre>
 </div>
 
@@ -584,17 +591,36 @@
 
 { # Represents a ServiceAttachment resource.
     # 
-    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+  &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+    { # [Output Only] A connection connected to this service attachment.
+      &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+      &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+    },
+  ],
   &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
+  &quot;consumerAcceptLists&quot;: [ # Projects that are allowed to connect to this service attachment.
+    {
+      &quot;connectionLimit&quot;: 42, # The value of the limit to set.
+      &quot;projectIdOrNum&quot;: &quot;A String&quot;, # The project id or number for the project to set the limit for.
+    },
+  ],
   &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-    { # [Output Only] A consumer forwarding rule connected to this service attachment.
+    { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
       &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
       &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
     },
   ],
+  &quot;consumerRejectLists&quot;: [ # Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.
+    &quot;A String&quot;,
+  ],
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;enableProxyProtocol&quot;: True or False, # If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.
+  &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource type. The server generates this identifier.
   &quot;kind&quot;: &quot;compute#serviceAttachment&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -602,8 +628,13 @@
     &quot;A String&quot;,
   ],
   &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+  &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+    &quot;high&quot;: &quot;A String&quot;,
+    &quot;low&quot;: &quot;A String&quot;,
+  },
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+  &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
 }
 
   requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
@@ -647,50 +678,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -752,17 +739,36 @@
   &quot;items&quot;: [ # A list of ServiceAttachment resources.
     { # Represents a ServiceAttachment resource.
         #
-        # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+        # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+      &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+        { # [Output Only] A connection connected to this service attachment.
+          &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+          &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+          &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+          &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+        },
+      ],
       &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
+      &quot;consumerAcceptLists&quot;: [ # Projects that are allowed to connect to this service attachment.
+        {
+          &quot;connectionLimit&quot;: 42, # The value of the limit to set.
+          &quot;projectIdOrNum&quot;: &quot;A String&quot;, # The project id or number for the project to set the limit for.
+        },
+      ],
       &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-        { # [Output Only] A consumer forwarding rule connected to this service attachment.
+        { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
           &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+          &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
           &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
         },
       ],
+      &quot;consumerRejectLists&quot;: [ # Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.
+        &quot;A String&quot;,
+      ],
       &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;enableProxyProtocol&quot;: True or False, # If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.
+      &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource type. The server generates this identifier.
       &quot;kind&quot;: &quot;compute#serviceAttachment&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
       &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
@@ -770,8 +776,13 @@
         &quot;A String&quot;,
       ],
       &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+      &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+        &quot;high&quot;: &quot;A String&quot;,
+        &quot;low&quot;: &quot;A String&quot;,
+      },
       &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+      &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
     },
   ],
   &quot;kind&quot;: &quot;compute#serviceAttachmentList&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
@@ -806,6 +817,136 @@
 </div>
 
 <div class="method">
+    <code class="details" id="patch">patch(project, region, serviceAttachment, body=None, requestId=None)</code>
+  <pre>Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+
+Args:
+  project: string, Project ID for this request. (required)
+  region: string, The region scoping this request and should conform to RFC1035. (required)
+  serviceAttachment: string, The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Represents a ServiceAttachment resource.
+    # 
+    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+  &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+    { # [Output Only] A connection connected to this service attachment.
+      &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+      &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+    },
+  ],
+  &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
+  &quot;consumerAcceptLists&quot;: [ # Projects that are allowed to connect to this service attachment.
+    {
+      &quot;connectionLimit&quot;: 42, # The value of the limit to set.
+      &quot;projectIdOrNum&quot;: &quot;A String&quot;, # The project id or number for the project to set the limit for.
+    },
+  ],
+  &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
+    { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
+      &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
+    },
+  ],
+  &quot;consumerRejectLists&quot;: [ # Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.
+    &quot;A String&quot;,
+  ],
+  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
+  &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
+  &quot;enableProxyProtocol&quot;: True or False, # If true, enable the proxy protocol which is for supplying client TCP/IP address data in TCP connections that traverse proxies on their way to destination servers.
+  &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ServiceAttachment. An up-to-date fingerprint must be provided in order to patch/update the ServiceAttachment; otherwise, the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the ServiceAttachment.
+  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource type. The server generates this identifier.
+  &quot;kind&quot;: &quot;compute#serviceAttachment&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
+  &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+  &quot;natSubnets&quot;: [ # An array of URLs where each entry is the URL of a subnet provided by the service producer to use for NAT in this service attachment.
+    &quot;A String&quot;,
+  ],
+  &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+  &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+    &quot;high&quot;: &quot;A String&quot;,
+    &quot;low&quot;: &quot;A String&quot;,
+  },
+  &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
+  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+  &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
+}
+
+  requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
+
+For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.
+
+The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+
+Returns:
+  An object of the form:
+
+    { # Represents an Operation resource.
+    #
+    # Google Compute Engine has three Operation resources:
+    #
+    # * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations)
+    #
+    # You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses.
+    #
+    # Operations can be global, regional or zonal.
+    # - For global operations, use the `globalOperations` resource.
+    # - For regional operations, use the `regionOperations` resource.
+    # - For zonal operations, use the `zonalOperations` resource.
+    #
+    # For more information, read  Global, Regional, and Zonal Resources. (== resource_for {$api_version}.globalOperations ==) (== resource_for {$api_version}.regionOperations ==) (== resource_for {$api_version}.zoneOperations ==)
+  &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.
+  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Deprecated] This field is deprecated.
+  &quot;description&quot;: &quot;A String&quot;, # [Output Only] A textual description of the operation, which is set when the operation is created.
+  &quot;endTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
+  &quot;error&quot;: { # [Output Only] If errors are generated during processing of the operation, this field will be populated.
+    &quot;errors&quot;: [ # [Output Only] The array of errors encountered while processing this operation.
+      {
+        &quot;code&quot;: &quot;A String&quot;, # [Output Only] The error type identifier for this error.
+        &quot;location&quot;: &quot;A String&quot;, # [Output Only] Indicates the field in the request that caused the error. This property is optional.
+        &quot;message&quot;: &quot;A String&quot;, # [Output Only] An optional, human-readable error message.
+      },
+    ],
+  },
+  &quot;httpErrorMessage&quot;: &quot;A String&quot;, # [Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`.
+  &quot;httpErrorStatusCode&quot;: 42, # [Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found.
+  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
+  &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
+  &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
+  &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
+  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
+  &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
+  &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
+  &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.
+  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+  &quot;selfLinkWithId&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource with the resource id.
+  &quot;startTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.
+  &quot;status&quot;: &quot;A String&quot;, # [Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`.
+  &quot;statusMessage&quot;: &quot;A String&quot;, # [Output Only] An optional textual description of the current status of the operation.
+  &quot;targetId&quot;: &quot;A String&quot;, # [Output Only] The unique target ID, which identifies a specific incarnation of the target resource.
+  &quot;targetLink&quot;: &quot;A String&quot;, # [Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the persistent disk that the snapshot was created from.
+  &quot;user&quot;: &quot;A String&quot;, # [Output Only] User who requested the operation, for example: `user@example.com`.
+  &quot;warnings&quot;: [ # [Output Only] If warning messages are generated during processing of the operation, this field will be populated.
+    {
+      &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.
+      &quot;data&quot;: [ # [Output Only] Metadata about this warning in key: value format. For example:
+          # &quot;data&quot;: [ { &quot;key&quot;: &quot;scope&quot;, &quot;value&quot;: &quot;zones/us-east1-d&quot; }
+        {
+          &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
+          &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
+    },
+  ],
+  &quot;zone&quot;: &quot;A String&quot;, # [Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.
+}</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setIamPolicy">setIamPolicy(project, region, resource, body=None)</code>
   <pre>Sets the access control policy on the specified resource. Replaces any existing policy.
 
diff --git a/docs/dyn/compute_alpha.snapshots.html b/docs/dyn/compute_alpha.snapshots.html
index 223b4a1..30f7b15 100644
--- a/docs/dyn/compute_alpha.snapshots.html
+++ b/docs/dyn/compute_alpha.snapshots.html
@@ -160,50 +160,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -640,50 +596,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1345,50 +1257,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.sslCertificates.html b/docs/dyn/compute_alpha.sslCertificates.html
index d2e360b..95192ff 100644
--- a/docs/dyn/compute_alpha.sslCertificates.html
+++ b/docs/dyn/compute_alpha.sslCertificates.html
@@ -278,50 +278,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -504,50 +460,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.sslPolicies.html b/docs/dyn/compute_alpha.sslPolicies.html
index d9253ac..217df2f 100644
--- a/docs/dyn/compute_alpha.sslPolicies.html
+++ b/docs/dyn/compute_alpha.sslPolicies.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -491,50 +447,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -907,50 +819,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.subnetworks.html b/docs/dyn/compute_alpha.subnetworks.html
index d7e43bc..c1c414e 100644
--- a/docs/dyn/compute_alpha.subnetworks.html
+++ b/docs/dyn/compute_alpha.subnetworks.html
@@ -186,12 +186,12 @@
             &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
             &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
             &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-            &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+            &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
             &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
               &quot;A String&quot;,
             ],
           },
-          &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is INCLUDE_ALL_METADATA.
+          &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
           &quot;name&quot;: &quot;A String&quot;, # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
           &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
           &quot;privateIpGoogleAccess&quot;: True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
@@ -322,50 +322,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -452,50 +408,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -570,12 +482,12 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
   },
-  &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is INCLUDE_ALL_METADATA.
+  &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
   &quot;name&quot;: &quot;A String&quot;, # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
   &quot;privateIpGoogleAccess&quot;: True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
@@ -845,12 +757,12 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
   },
-  &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is INCLUDE_ALL_METADATA.
+  &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
   &quot;name&quot;: &quot;A String&quot;, # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
   &quot;privateIpGoogleAccess&quot;: True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
@@ -921,50 +833,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1056,12 +924,12 @@
         &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
         &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
         &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-        &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+        &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
         &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
           &quot;A String&quot;,
         ],
       },
-      &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is INCLUDE_ALL_METADATA.
+      &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
       &quot;name&quot;: &quot;A String&quot;, # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
       &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
       &quot;privateIpGoogleAccess&quot;: True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
@@ -1236,12 +1104,12 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
   },
-  &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is INCLUDE_ALL_METADATA.
+  &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logging for this subnetwork is enabled. Configures whether metadata fields should be added to the reported VPC flow logs. Options are INCLUDE_ALL_METADATA, EXCLUDE_ALL_METADATA, and CUSTOM_METADATA. Default is EXCLUDE_ALL_METADATA.
   &quot;name&quot;: &quot;A String&quot;, # The name of the resource, provided by the client when initially creating the resource. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this subnetwork belongs, provided by the client when initially creating the subnetwork. Only networks that are in the distributed mode can have subnetworks. This field can be set only at resource creation time.
   &quot;privateIpGoogleAccess&quot;: True or False, # Whether the VMs in this subnet can access Google services without assigned external IP addresses. This field can be both set at resource creation time and updated using setPrivateIpGoogleAccess.
@@ -1313,50 +1181,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1889,50 +1713,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetGrpcProxies.html b/docs/dyn/compute_alpha.targetGrpcProxies.html
index 3b8e4a9..df6df67 100644
--- a/docs/dyn/compute_alpha.targetGrpcProxies.html
+++ b/docs/dyn/compute_alpha.targetGrpcProxies.html
@@ -152,50 +152,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -318,50 +274,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -532,50 +444,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetHttpProxies.html b/docs/dyn/compute_alpha.targetHttpProxies.html
index 8c03ef6..c36edf0 100644
--- a/docs/dyn/compute_alpha.targetHttpProxies.html
+++ b/docs/dyn/compute_alpha.targetHttpProxies.html
@@ -271,50 +271,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -471,50 +427,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -719,50 +631,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -848,50 +716,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetHttpsProxies.html b/docs/dyn/compute_alpha.targetHttpsProxies.html
index 8882eff..0a826a7 100644
--- a/docs/dyn/compute_alpha.targetHttpsProxies.html
+++ b/docs/dyn/compute_alpha.targetHttpsProxies.html
@@ -306,50 +306,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -552,50 +508,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -846,50 +758,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -975,50 +843,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1104,50 +928,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1235,50 +1015,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1364,50 +1100,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1493,50 +1185,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetInstances.html b/docs/dyn/compute_alpha.targetInstances.html
index 19c2f79..46b83c0 100644
--- a/docs/dyn/compute_alpha.targetInstances.html
+++ b/docs/dyn/compute_alpha.targetInstances.html
@@ -253,50 +253,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -429,50 +385,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetPools.html b/docs/dyn/compute_alpha.targetPools.html
index 2313900..0d0a884 100644
--- a/docs/dyn/compute_alpha.targetPools.html
+++ b/docs/dyn/compute_alpha.targetPools.html
@@ -183,50 +183,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -320,50 +276,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -559,50 +471,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -802,50 +670,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1035,50 +859,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1169,50 +949,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1300,50 +1036,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetSslProxies.html b/docs/dyn/compute_alpha.targetSslProxies.html
index 2ebf0a0..9d0d6b4 100644
--- a/docs/dyn/compute_alpha.targetSslProxies.html
+++ b/docs/dyn/compute_alpha.targetSslProxies.html
@@ -164,50 +164,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -336,50 +292,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -542,50 +454,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -671,50 +539,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -800,50 +624,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -931,50 +711,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1060,50 +796,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetTcpProxies.html b/docs/dyn/compute_alpha.targetTcpProxies.html
index c4a8212..f99d004 100644
--- a/docs/dyn/compute_alpha.targetTcpProxies.html
+++ b/docs/dyn/compute_alpha.targetTcpProxies.html
@@ -155,50 +155,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -327,50 +283,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -533,50 +445,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -662,50 +530,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.targetVpnGateways.html b/docs/dyn/compute_alpha.targetVpnGateways.html
index f639f0e..65314c6 100644
--- a/docs/dyn/compute_alpha.targetVpnGateways.html
+++ b/docs/dyn/compute_alpha.targetVpnGateways.html
@@ -263,50 +263,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -453,50 +409,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -672,50 +584,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.urlMaps.html b/docs/dyn/compute_alpha.urlMaps.html
index 60b1bd6..71d1ef9 100644
--- a/docs/dyn/compute_alpha.urlMaps.html
+++ b/docs/dyn/compute_alpha.urlMaps.html
@@ -1141,50 +1141,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3069,50 +3025,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -3201,50 +3113,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -5177,50 +5045,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -6225,50 +6049,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.vpnGateways.html b/docs/dyn/compute_alpha.vpnGateways.html
index da78cea..af9ead6 100644
--- a/docs/dyn/compute_alpha.vpnGateways.html
+++ b/docs/dyn/compute_alpha.vpnGateways.html
@@ -160,6 +160,7 @@
             { # A VPN gateway interface.
               &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
               &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+                  # Not currently available in all Interconnect locations.
               &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
             },
           ],
@@ -266,50 +267,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -373,6 +330,7 @@
     { # A VPN gateway interface.
       &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
       &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+          # Not currently available in all Interconnect locations.
       &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
     },
   ],
@@ -445,6 +403,7 @@
     { # A VPN gateway interface.
       &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
       &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+          # Not currently available in all Interconnect locations.
       &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
     },
   ],
@@ -491,50 +450,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -615,6 +530,7 @@
         { # A VPN gateway interface.
           &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
           &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+              # Not currently available in all Interconnect locations.
           &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
         },
       ],
@@ -710,50 +626,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.vpnTunnels.html b/docs/dyn/compute_alpha.vpnTunnels.html
index 7675a68..677cbc8 100644
--- a/docs/dyn/compute_alpha.vpnTunnels.html
+++ b/docs/dyn/compute_alpha.vpnTunnels.html
@@ -178,7 +178,7 @@
               # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
               # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
               # - NO_INCOMING_PACKETS: No incoming packets from peer.
-              # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+              # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
               # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
               # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
               # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -289,50 +289,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -417,7 +373,7 @@
       # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
       # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
       # - NO_INCOMING_PACKETS: No incoming packets from peer.
-      # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+      # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
       # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
       # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
       # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -480,7 +436,7 @@
       # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
       # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
       # - NO_INCOMING_PACKETS: No incoming packets from peer.
-      # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+      # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
       # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
       # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
       # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -531,50 +487,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -676,7 +588,7 @@
           # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
           # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
           # - NO_INCOMING_PACKETS: No incoming packets from peer.
-          # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+          # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
           # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
           # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
           # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -776,50 +688,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.zoneInPlaceSnapshots.html b/docs/dyn/compute_alpha.zoneInPlaceSnapshots.html
index 747f76f..85caac6 100644
--- a/docs/dyn/compute_alpha.zoneInPlaceSnapshots.html
+++ b/docs/dyn/compute_alpha.zoneInPlaceSnapshots.html
@@ -161,50 +161,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -552,50 +508,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1219,50 +1131,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.zoneInstantSnapshots.html b/docs/dyn/compute_alpha.zoneInstantSnapshots.html
index c7f801d..4424f1c 100644
--- a/docs/dyn/compute_alpha.zoneInstantSnapshots.html
+++ b/docs/dyn/compute_alpha.zoneInstantSnapshots.html
@@ -164,50 +164,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -311,50 +267,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -710,50 +622,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -1381,50 +1249,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_alpha.zoneOperations.html b/docs/dyn/compute_alpha.zoneOperations.html
index 4795dd9..0458dd7 100644
--- a/docs/dyn/compute_alpha.zoneOperations.html
+++ b/docs/dyn/compute_alpha.zoneOperations.html
@@ -153,50 +153,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -288,50 +244,6 @@
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
       &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
       &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-      &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-          #
-          # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-          #
-          # Example 1: Pack and unpack a message in C++.
-          #
-          # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-          #
-          # Example 2: Pack and unpack a message in Java.
-          #
-          # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-          #
-          # Example 3: Pack and unpack a message in Python.
-          #
-          # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-          #
-          # Example 4: Pack and unpack a message in Go
-          #
-          # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-          #
-          # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-          #
-          #
-          #
-          # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-          #
-          # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-          #
-          # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-          #
-          # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-        &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-            #
-            # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-            #
-            # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-            #
-            # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-            #
-            # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-        &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-      },
       &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
       &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
       &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
@@ -440,50 +352,6 @@
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is defined by the server.
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
-  &quot;metadata&quot;: { # `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. # [Output Only] Service-specific metadata attached to this operation.
-      #
-      # Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type.
-      #
-      # Example 1: Pack and unpack a message in C++.
-      #
-      # Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... }
-      #
-      # Example 2: Pack and unpack a message in Java.
-      #
-      # Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); }
-      #
-      # Example 3: Pack and unpack a message in Python.
-      #
-      # foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
-      #
-      # Example 4: Pack and unpack a message in Go
-      #
-      # foo := &amp;pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &amp;pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
-      #
-      # The pack methods provided by protobuf library will by default use &#x27;type.googleapis.com/full.type.name&#x27; as the type URL and the unpack methods only use the fully qualified type name after the last &#x27;/&#x27; in the type URL, for example &quot;foo.bar.com/x/y.z&quot; will yield type name &quot;y.z&quot;.
-      #
-      #
-      #
-      # JSON ==== The JSON representation of an `Any` value uses the regular representation of the deserialized, embedded message, with an additional field `@type` which contains the type URL. Example:
-      #
-      # package google.profile; message Person { string first_name = 1; string last_name = 2; }
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.profile.Person&quot;, &quot;firstName&quot;: , &quot;lastName&quot;:  }
-      #
-      # If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field `value` which holds the custom JSON in addition to the `@type` field. Example (for message [google.protobuf.Duration][]):
-      #
-      # { &quot;@type&quot;: &quot;type.googleapis.com/google.protobuf.Duration&quot;, &quot;value&quot;: &quot;1.212s&quot; }
-    &quot;typeUrl&quot;: &quot;A String&quot;, # A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one &quot;/&quot; character. The last segment of the URL&#x27;s path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading &quot;.&quot; is not accepted).
-        #
-        # In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:
-        #
-        # * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)
-        #
-        # Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.
-        #
-        # Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.
-    &quot;value&quot;: &quot;A String&quot;, # Must be a valid serialized protocol buffer of the above specified type.
-  },
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
   &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
diff --git a/docs/dyn/compute_beta.backendServices.html b/docs/dyn/compute_beta.backendServices.html
index 684310e..dffebb2 100644
--- a/docs/dyn/compute_beta.backendServices.html
+++ b/docs/dyn/compute_beta.backendServices.html
@@ -514,7 +514,7 @@
           &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
           &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
               #
-              # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+              # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
               #
               # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
               #
@@ -1023,7 +1023,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
@@ -1068,6 +1068,8 @@
       &quot;annotations&quot;: { # Metadata defined as annotations for network endpoint.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # URL of the forwarding rule associated with the health status of the instance.
+      &quot;forwardingRuleIp&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
       &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
@@ -1367,7 +1369,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -1756,7 +1758,7 @@
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
       &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
@@ -2088,7 +2090,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -2570,7 +2572,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
diff --git a/docs/dyn/compute_beta.html b/docs/dyn/compute_beta.html
index e9c5c1d..1c7caac 100644
--- a/docs/dyn/compute_beta.html
+++ b/docs/dyn/compute_beta.html
@@ -175,6 +175,11 @@
 <p class="firstline">Returns the httpsHealthChecks Resource.</p>
 
 <p class="toc_element">
+  <code><a href="compute_beta.imageFamilyViews.html">imageFamilyViews()</a></code>
+</p>
+<p class="firstline">Returns the imageFamilyViews Resource.</p>
+
+<p class="toc_element">
   <code><a href="compute_beta.images.html">images()</a></code>
 </p>
 <p class="firstline">Returns the images Resource.</p>
diff --git a/docs/dyn/compute_beta.imageFamilyViews.html b/docs/dyn/compute_beta.imageFamilyViews.html
new file mode 100644
index 0000000..b4d5a51
--- /dev/null
+++ b/docs/dyn/compute_beta.imageFamilyViews.html
@@ -0,0 +1,253 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="compute_beta.html">Compute Engine API</a> . <a href="compute_beta.imageFamilyViews.html">imageFamilyViews</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, zone, family)</a></code></p>
+<p class="firstline">Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, zone, family)</code>
+  <pre>Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.
+
+Args:
+  project: string, Project ID for this request. (required)
+  zone: string, The name of the zone for this request. (required)
+  family: string, Name of the image family to search for. (required)
+
+Returns:
+  An object of the form:
+
+    {
+  &quot;image&quot;: { # Represents an Image resource. # The latest image that is part of the specified image family in the requested location, and that is not deprecated.
+      #
+      # You can use images to create boot disks for your VM instances. For more information, read Images. (== resource_for {$api_version}.images ==)
+    &quot;archiveSizeBytes&quot;: &quot;A String&quot;, # Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).
+    &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
+    &quot;deprecated&quot;: { # Deprecation status for a public resource. # The deprecation status associated with this image.
+      &quot;deleted&quot;: &quot;A String&quot;, # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED. This is only informational and the status will not change unless the client explicitly changes it.
+      &quot;deprecated&quot;: &quot;A String&quot;, # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED. This is only informational and the status will not change unless the client explicitly changes it.
+      &quot;obsolete&quot;: &quot;A String&quot;, # An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE. This is only informational and the status will not change unless the client explicitly changes it.
+      &quot;replacement&quot;: &quot;A String&quot;, # The URL of the suggested replacement for a deprecated resource. The suggested replacement resource must be the same kind of resource as the deprecated resource.
+      &quot;state&quot;: &quot;A String&quot;, # The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the end of life date for an image, can use ACTIVE. Operations which create a new resource using a DEPRECATED resource will return successfully, but with a warning indicating the deprecated resource and recommending its replacement. Operations which use OBSOLETE or DELETED resources will be rejected and result in an error.
+    },
+    &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
+    &quot;diskSizeGb&quot;: &quot;A String&quot;, # Size of the image when restored onto a persistent disk (in GB).
+    &quot;family&quot;: &quot;A String&quot;, # The name of the image family to which this image belongs. You can create disks by specifying an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.
+    &quot;guestOsFeatures&quot;: [ # A list of features to enable on the guest operating system. Applicable only for bootable images. Read  Enabling guest operating system features to see a list of available options.
+      { # Guest OS features.
+        &quot;type&quot;: &quot;A String&quot;, # The ID of a supported feature. Read  Enabling guest operating system features to see a list of available options.
+      },
+    ],
+    &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
+    &quot;imageEncryptionKey&quot;: { # Encrypts the image using a customer-supplied encryption key.
+        #
+        # After you encrypt an image with a customer-supplied key, you must provide the same key if you use the image later (e.g. to create a disk from the image).
+        #
+        # Customer-supplied encryption keys do not protect access to metadata of the disk.
+        #
+        # If you do not provide an encryption key when creating the image, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the image later.
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The name of the encryption key that is stored in Google Cloud KMS.
+      &quot;kmsKeyServiceAccount&quot;: &quot;A String&quot;, # The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
+      &quot;rawKey&quot;: &quot;A String&quot;, # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+      &quot;rsaEncryptedKey&quot;: &quot;A String&quot;, # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+          #
+          # The key must meet the following requirements before you can provide it to Compute Engine:
+          # - The key is wrapped using a RSA public key certificate provided by Google.
+          # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Gets the RSA public key certificate provided by Google at:
+          # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      &quot;sha256&quot;: &quot;A String&quot;, # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+    },
+    &quot;kind&quot;: &quot;compute#image&quot;, # [Output Only] Type of the resource. Always compute#image for images.
+    &quot;labelFingerprint&quot;: &quot;A String&quot;, # A fingerprint for the labels being applied to this image, which is essentially a hash of the labels used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet.
+        #
+        # To see the latest fingerprint, make a get() request to retrieve an image.
+    &quot;labels&quot;: { # Labels to apply to this image. These can be later modified by the setLabels method.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;licenseCodes&quot;: [ # Integer license codes indicating which licenses are attached to this image.
+      &quot;A String&quot;,
+    ],
+    &quot;licenses&quot;: [ # Any applicable license URI.
+      &quot;A String&quot;,
+    ],
+    &quot;name&quot;: &quot;A String&quot;, # Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
+    &quot;rawDisk&quot;: { # The parameters of the raw disk image.
+      &quot;containerType&quot;: &quot;A String&quot;, # The format used to encode and transmit the block device, which should be TAR. This is just a container and transmission format and not a runtime format. Provided by the client when the disk image is created.
+      &quot;sha1Checksum&quot;: &quot;A String&quot;, # [Deprecated] This field is deprecated. An optional SHA1 checksum of the disk image before unpackaging provided by the client when the disk image is created.
+      &quot;source&quot;: &quot;A String&quot;, # The full Google Cloud Storage URL where the disk image is stored. You must provide either this property or the sourceDisk property but not both.
+    },
+    &quot;satisfiesPzs&quot;: True or False, # [Output Only] Reserved for future use.
+    &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+    &quot;shieldedInstanceInitialState&quot;: { # Initial State for shielded instance, these are public keys which are safe to store in public # Set the secure boot keys of shielded instance.
+      &quot;dbs&quot;: [ # The Key Database (db).
+        {
+          &quot;content&quot;: &quot;A String&quot;, # The raw content in the secure keys file.
+          &quot;fileType&quot;: &quot;A String&quot;, # The file type of source file.
+        },
+      ],
+      &quot;dbxs&quot;: [ # The forbidden key database (dbx).
+        {
+          &quot;content&quot;: &quot;A String&quot;, # The raw content in the secure keys file.
+          &quot;fileType&quot;: &quot;A String&quot;, # The file type of source file.
+        },
+      ],
+      &quot;keks&quot;: [ # The Key Exchange Key (KEK).
+        {
+          &quot;content&quot;: &quot;A String&quot;, # The raw content in the secure keys file.
+          &quot;fileType&quot;: &quot;A String&quot;, # The file type of source file.
+        },
+      ],
+      &quot;pk&quot;: { # The Platform Key (PK).
+        &quot;content&quot;: &quot;A String&quot;, # The raw content in the secure keys file.
+        &quot;fileType&quot;: &quot;A String&quot;, # The file type of source file.
+      },
+    },
+    &quot;sourceDisk&quot;: &quot;A String&quot;, # URL of the source disk used to create this image. This can be a full or valid partial URL. You must provide either this property or the rawDisk.source property but not both to create an image. For example, the following are valid values:
+        # - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
+        # - projects/project/zones/zone/disks/disk
+        # - zones/zone/disks/disk
+    &quot;sourceDiskEncryptionKey&quot;: { # The customer-supplied encryption key of the source disk. Required if the source disk is protected by a customer-supplied encryption key.
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The name of the encryption key that is stored in Google Cloud KMS.
+      &quot;kmsKeyServiceAccount&quot;: &quot;A String&quot;, # The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
+      &quot;rawKey&quot;: &quot;A String&quot;, # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+      &quot;rsaEncryptedKey&quot;: &quot;A String&quot;, # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+          #
+          # The key must meet the following requirements before you can provide it to Compute Engine:
+          # - The key is wrapped using a RSA public key certificate provided by Google.
+          # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Gets the RSA public key certificate provided by Google at:
+          # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      &quot;sha256&quot;: &quot;A String&quot;, # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+    },
+    &quot;sourceDiskId&quot;: &quot;A String&quot;, # [Output Only] The ID value of the disk used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given disk name.
+    &quot;sourceImage&quot;: &quot;A String&quot;, # URL of the source image used to create this image.
+        #
+        # In order to create an image, you must provide the full or partial URL of one of the following:
+        # - The selfLink URL
+        # - This property
+        # - The rawDisk.source URL
+        # - The sourceDisk URL
+    &quot;sourceImageEncryptionKey&quot;: { # The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key.
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The name of the encryption key that is stored in Google Cloud KMS.
+      &quot;kmsKeyServiceAccount&quot;: &quot;A String&quot;, # The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
+      &quot;rawKey&quot;: &quot;A String&quot;, # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+      &quot;rsaEncryptedKey&quot;: &quot;A String&quot;, # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+          #
+          # The key must meet the following requirements before you can provide it to Compute Engine:
+          # - The key is wrapped using a RSA public key certificate provided by Google.
+          # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Gets the RSA public key certificate provided by Google at:
+          # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      &quot;sha256&quot;: &quot;A String&quot;, # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+    },
+    &quot;sourceImageId&quot;: &quot;A String&quot;, # [Output Only] The ID value of the image used to create this image. This value may be used to determine whether the image was taken from the current or a previous instance of a given image name.
+    &quot;sourceSnapshot&quot;: &quot;A String&quot;, # URL of the source snapshot used to create this image.
+        #
+        # In order to create an image, you must provide the full or partial URL of one of the following:
+        # - The selfLink URL
+        # - This property
+        # - The sourceImage URL
+        # - The rawDisk.source URL
+        # - The sourceDisk URL
+    &quot;sourceSnapshotEncryptionKey&quot;: { # The customer-supplied encryption key of the source snapshot. Required if the source snapshot is protected by a customer-supplied encryption key.
+      &quot;kmsKeyName&quot;: &quot;A String&quot;, # The name of the encryption key that is stored in Google Cloud KMS.
+      &quot;kmsKeyServiceAccount&quot;: &quot;A String&quot;, # The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.
+      &quot;rawKey&quot;: &quot;A String&quot;, # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.
+      &quot;rsaEncryptedKey&quot;: &quot;A String&quot;, # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.
+          #
+          # The key must meet the following requirements before you can provide it to Compute Engine:
+          # - The key is wrapped using a RSA public key certificate provided by Google.
+          # - After being wrapped, the key must be encoded in RFC 4648 base64 encoding.  Gets the RSA public key certificate provided by Google at:
+          # https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
+      &quot;sha256&quot;: &quot;A String&quot;, # [Output only] The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.
+    },
+    &quot;sourceSnapshotId&quot;: &quot;A String&quot;, # [Output Only] The ID value of the snapshot used to create this image. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given snapshot name.
+    &quot;sourceType&quot;: &quot;RAW&quot;, # The type of the image used to create this disk. The default and only value is RAW
+    &quot;status&quot;: &quot;A String&quot;, # [Output Only] The status of the image. An image can be used to create other resources, such as instances, only after the image has been successfully created and the status is set to READY. Possible values are FAILED, PENDING, or READY.
+    &quot;storageLocations&quot;: [ # Cloud Storage bucket storage location of the image (regional or multi-regional).
+      &quot;A String&quot;,
+    ],
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/compute_beta.instanceGroupManagers.html b/docs/dyn/compute_beta.instanceGroupManagers.html
index 78eca00..b39c3bb 100644
--- a/docs/dyn/compute_beta.instanceGroupManagers.html
+++ b/docs/dyn/compute_beta.instanceGroupManagers.html
@@ -139,7 +139,7 @@
 <p class="firstline">Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body=None, requestId=None)</a></code></p>
-<p class="firstline">Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
+<p class="firstline">Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.</p>
 <p class="toc_element">
   <code><a href="#resize">resize(project, zone, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.</p>
@@ -401,6 +401,7 @@
             },
             &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
             &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+            &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
             &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
             &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
           },
@@ -1051,6 +1052,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
@@ -1203,6 +1205,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
@@ -1441,6 +1444,7 @@
         },
         &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
         &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+        &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
         &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
         &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
       },
@@ -1869,6 +1873,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
@@ -2069,7 +2074,7 @@
 
 <div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body=None, requestId=None)</code>
-  <pre>Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
+  <pre>Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group&#x27;s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.
 
 If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
 
@@ -2757,6 +2762,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
diff --git a/docs/dyn/compute_beta.instanceTemplates.html b/docs/dyn/compute_beta.instanceTemplates.html
index 75f5148..bfbd69f 100644
--- a/docs/dyn/compute_beta.instanceTemplates.html
+++ b/docs/dyn/compute_beta.instanceTemplates.html
@@ -206,6 +206,7 @@
   &quot;properties&quot;: { # The instance properties for this instance template.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -733,6 +734,7 @@
   &quot;properties&quot;: { # The instance properties for this instance template.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -1152,6 +1154,7 @@
       &quot;properties&quot;: { # The instance properties for this instance template.
         &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
           &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+          &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
         },
         &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
         &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
diff --git a/docs/dyn/compute_beta.instances.html b/docs/dyn/compute_beta.instances.html
index e9ff088..8679951 100644
--- a/docs/dyn/compute_beta.instances.html
+++ b/docs/dyn/compute_beta.instances.html
@@ -97,7 +97,7 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance, requestId=None)</a></code></p>
-<p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
+<p class="firstline">Deletes the specified Instance resource. For more information, see Deleting an instance.</p>
 <p class="toc_element">
   <code><a href="#deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface, requestId=None)</a></code></p>
 <p class="firstline">Deletes an access config from an instance's network interface.</p>
@@ -450,6 +450,7 @@
             # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
           &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
             &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+            &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
           },
           &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
           &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -1094,6 +1095,7 @@
   &quot;instanceProperties&quot;: { # The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -1383,15 +1385,15 @@
       ],
     },
   },
-  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).
-    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, like: zones/us-central1-a.
+  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). # Policy for chosing target zone.
+    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.
       &quot;a_key&quot;: {
-        &quot;preference&quot;: &quot;A String&quot;,
+        &quot;preference&quot;: &quot;A String&quot;, # Preference for a given locaction: ALLOW or DENY.
       },
     },
   },
-  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created.
-  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or predefined_names must be set. The pattern should contain one consecutive sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names like inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
+  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.
+  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern should contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names such as inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
   &quot;perInstanceProperties&quot;: { # Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.
     &quot;a_key&quot;: { # Per-instance properties to be set on individual instances. To be extended in the future.
       &quot;name&quot;: &quot;A String&quot;, # This field is only temporary. It will be removed. Do not use it.
@@ -1484,7 +1486,7 @@
 
 <div class="method">
     <code class="details" id="delete">delete(project, zone, instance, requestId=None)</code>
-  <pre>Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.
+  <pre>Deletes the specified Instance resource. For more information, see Deleting an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1736,6 +1738,7 @@
     # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
   &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
     &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+    &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
   },
   &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -2214,7 +2217,7 @@
       &quot;id&quot;: &quot;A String&quot;, # The unique identifier for the security policy. This identifier is defined by the server.
       &quot;rules&quot;: [ # The rules that apply to the network.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -2630,6 +2633,7 @@
     # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
   &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
     &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+    &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
   },
   &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -3090,6 +3094,7 @@
         # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
       &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
         &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+        &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
       },
       &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
       &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -5856,6 +5861,7 @@
     # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
   &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
     &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+    &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
   },
   &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
diff --git a/docs/dyn/compute_beta.interconnectAttachments.html b/docs/dyn/compute_beta.interconnectAttachments.html
index 0873b1a..113bcfb 100644
--- a/docs/dyn/compute_beta.interconnectAttachments.html
+++ b/docs/dyn/compute_beta.interconnectAttachments.html
@@ -171,10 +171,12 @@
           &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
               # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
               # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+              # Not currently available in all Interconnect locations.
           &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
           &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+              # Not currently available in all Interconnect locations.
             &quot;A String&quot;,
           ],
           &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -390,10 +392,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -478,10 +482,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -655,10 +661,12 @@
       &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
           # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
           # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+          # Not currently available in all Interconnect locations.
       &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
       &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+          # Not currently available in all Interconnect locations.
         &quot;A String&quot;,
       ],
       &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -774,10 +782,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
diff --git a/docs/dyn/compute_beta.networks.html b/docs/dyn/compute_beta.networks.html
index cbf0685..fc0426c 100644
--- a/docs/dyn/compute_beta.networks.html
+++ b/docs/dyn/compute_beta.networks.html
@@ -486,7 +486,7 @@
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the security policy. This identifier is defined by the server.
       &quot;rules&quot;: [ # The rules that apply to the network.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
diff --git a/docs/dyn/compute_beta.organizationSecurityPolicies.html b/docs/dyn/compute_beta.organizationSecurityPolicies.html
index 2a71839..1b2b966 100644
--- a/docs/dyn/compute_beta.organizationSecurityPolicies.html
+++ b/docs/dyn/compute_beta.organizationSecurityPolicies.html
@@ -223,7 +223,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -569,7 +569,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -678,7 +678,7 @@
   An object of the form:
 
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -795,7 +795,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1007,7 +1007,7 @@
       &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
       &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1259,7 +1259,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1416,7 +1416,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
diff --git a/docs/dyn/compute_beta.regionBackendServices.html b/docs/dyn/compute_beta.regionBackendServices.html
index ef15c86..dc44138 100644
--- a/docs/dyn/compute_beta.regionBackendServices.html
+++ b/docs/dyn/compute_beta.regionBackendServices.html
@@ -478,7 +478,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
@@ -520,6 +520,8 @@
       &quot;annotations&quot;: { # Metadata defined as annotations for network endpoint.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # URL of the forwarding rule associated with the health status of the instance.
+      &quot;forwardingRuleIp&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
       &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
@@ -820,7 +822,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -1210,7 +1212,7 @@
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
       &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
@@ -1543,7 +1545,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -1943,7 +1945,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
diff --git a/docs/dyn/compute_beta.regionInstanceGroupManagers.html b/docs/dyn/compute_beta.regionInstanceGroupManagers.html
index 0a398af..1c7691b 100644
--- a/docs/dyn/compute_beta.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_beta.regionInstanceGroupManagers.html
@@ -133,7 +133,7 @@
 <p class="firstline">Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body=None, requestId=None)</a></code></p>
-<p class="firstline">Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
+<p class="firstline">Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.</p>
 <p class="toc_element">
   <code><a href="#resize">resize(project, region, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances.</p>
@@ -825,6 +825,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
@@ -977,6 +978,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
@@ -1215,6 +1217,7 @@
         },
         &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
         &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+        &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
         &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
         &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
       },
@@ -1643,6 +1646,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
@@ -1843,7 +1847,7 @@
 
 <div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body=None, requestId=None)</code>
-  <pre>Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
+  <pre>Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group&#x27;s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.
 
 If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
 
@@ -2431,6 +2435,7 @@
     },
     &quot;minReadySec&quot;: 42, # Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].
     &quot;minimalAction&quot;: &quot;A String&quot;, # Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.
+    &quot;mostDisruptiveAllowedAction&quot;: &quot;A String&quot;, # Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.
     &quot;replacementMethod&quot;: &quot;A String&quot;, # What action should be used to replace instances. See minimal_action.REPLACE
     &quot;type&quot;: &quot;A String&quot;, # The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).
   },
diff --git a/docs/dyn/compute_beta.regionInstances.html b/docs/dyn/compute_beta.regionInstances.html
index 50f6e8e..a0e5fa3 100644
--- a/docs/dyn/compute_beta.regionInstances.html
+++ b/docs/dyn/compute_beta.regionInstances.html
@@ -96,6 +96,7 @@
   &quot;instanceProperties&quot;: { # The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -385,15 +386,15 @@
       ],
     },
   },
-  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).
-    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, like: zones/us-central1-a.
+  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). # Policy for chosing target zone.
+    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.
       &quot;a_key&quot;: {
-        &quot;preference&quot;: &quot;A String&quot;,
+        &quot;preference&quot;: &quot;A String&quot;, # Preference for a given locaction: ALLOW or DENY.
       },
     },
   },
-  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created.
-  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or predefined_names must be set. The pattern should contain one consecutive sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names like inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
+  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.
+  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern should contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names such as inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
   &quot;perInstanceProperties&quot;: { # Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.
     &quot;a_key&quot;: { # Per-instance properties to be set on individual instances. To be extended in the future.
       &quot;name&quot;: &quot;A String&quot;, # This field is only temporary. It will be removed. Do not use it.
diff --git a/docs/dyn/compute_beta.routers.html b/docs/dyn/compute_beta.routers.html
index 2ffc2b3..d96c651 100644
--- a/docs/dyn/compute_beta.routers.html
+++ b/docs/dyn/compute_beta.routers.html
@@ -222,6 +222,7 @@
           &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+              # Not currently available in all Interconnect locations.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
             {
@@ -499,6 +500,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -970,6 +972,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1204,6 +1207,7 @@
       &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+          # Not currently available in all Interconnect locations.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
         {
@@ -1381,6 +1385,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1597,6 +1602,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1737,6 +1743,7 @@
     &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
     &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
     &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+        # Not currently available in all Interconnect locations.
     &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
       {
@@ -1913,6 +1920,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
diff --git a/docs/dyn/compute_beta.securityPolicies.html b/docs/dyn/compute_beta.securityPolicies.html
index f5143b1..9d83fe4 100644
--- a/docs/dyn/compute_beta.securityPolicies.html
+++ b/docs/dyn/compute_beta.securityPolicies.html
@@ -128,7 +128,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -395,7 +395,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -486,7 +486,7 @@
   An object of the form:
 
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -604,7 +604,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -816,7 +816,7 @@
       &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
       &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
           &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1015,7 +1015,7 @@
   &quot;ruleTupleCount&quot;: 42, # [Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
       &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
@@ -1173,7 +1173,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;direction&quot;: &quot;A String&quot;, # The direction in which this rule applies. This field may only be specified when versioned_expr is set to FIREWALL.
   &quot;enableLogging&quot;: True or False, # Denotes whether to enable logging for a particular rule. If logging is enabled, logs will be exported to the configured export destination in Stackdriver. Logs may be exported to BigQuery or Pub/Sub. Note: you cannot enable logging on &quot;goto_next&quot; rules.
diff --git a/docs/dyn/compute_beta.serviceAttachments.html b/docs/dyn/compute_beta.serviceAttachments.html
index 8438770..7151010 100644
--- a/docs/dyn/compute_beta.serviceAttachments.html
+++ b/docs/dyn/compute_beta.serviceAttachments.html
@@ -141,11 +141,20 @@
       &quot;resources&quot;: [ # A list of ServiceAttachments contained in this scope.
         { # Represents a ServiceAttachment resource.
             #
-            # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+            # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+          &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+            { # [Output Only] A connection connected to this service attachment.
+              &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+              &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+              &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+              &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+            },
+          ],
           &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
           &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-            { # [Output Only] A consumer forwarding rule connected to this service attachment.
+            { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
               &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+              &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
               &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
             },
           ],
@@ -159,8 +168,13 @@
             &quot;A String&quot;,
           ],
           &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+          &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+            &quot;high&quot;: &quot;A String&quot;,
+            &quot;low&quot;: &quot;A String&quot;,
+          },
           &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
           &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+          &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
         },
       ],
       &quot;warning&quot;: { # Informational warning which replaces the list of service attachments when the list is empty.
@@ -307,11 +321,20 @@
 
     { # Represents a ServiceAttachment resource.
     #
-    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+  &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+    { # [Output Only] A connection connected to this service attachment.
+      &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+      &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+    },
+  ],
   &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
   &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-    { # [Output Only] A consumer forwarding rule connected to this service attachment.
+    { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
       &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
       &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
     },
   ],
@@ -325,8 +348,13 @@
     &quot;A String&quot;,
   ],
   &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+  &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+    &quot;high&quot;: &quot;A String&quot;,
+    &quot;low&quot;: &quot;A String&quot;,
+  },
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+  &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
 }</pre>
 </div>
 
@@ -539,11 +567,20 @@
 
 { # Represents a ServiceAttachment resource.
     # 
-    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+    # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+  &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+    { # [Output Only] A connection connected to this service attachment.
+      &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+      &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+    },
+  ],
   &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
   &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-    { # [Output Only] A consumer forwarding rule connected to this service attachment.
+    { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
       &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+      &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
       &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
     },
   ],
@@ -557,8 +594,13 @@
     &quot;A String&quot;,
   ],
   &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+  &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+    &quot;high&quot;: &quot;A String&quot;,
+    &quot;low&quot;: &quot;A String&quot;,
+  },
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+  &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
 }
 
   requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
@@ -662,11 +704,20 @@
   &quot;items&quot;: [ # A list of ServiceAttachment resources.
     { # Represents a ServiceAttachment resource.
         #
-        # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 17
+        # A service attachment represents a service that a producer has exposed. It encapsulates the load balancer which fronts the service runs and a list of NAT IP ranges that the producers uses to represent the consumers connecting to the service. next tag = 19
+      &quot;connectedEndpoints&quot;: [ # [Output Only] An array of connections for all the consumers connected to this service attachment.
+        { # [Output Only] A connection connected to this service attachment.
+          &quot;endpoint&quot;: &quot;A String&quot;, # The url of a connected endpoint.
+          &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule. [Deprecated] Do not use.
+          &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the connected endpoint.
+          &quot;status&quot;: &quot;A String&quot;, # The status of a connected endpoint to this service attachment.
+        },
+      ],
       &quot;connectionPreference&quot;: &quot;A String&quot;, # The connection preference of service attachment. The value can be set to ACCEPT_AUTOMATIC. An ACCEPT_AUTOMATIC service attachment is one that always accepts the connection from consumer forwarding rules.
       &quot;consumerForwardingRules&quot;: [ # [Output Only] An array of forwarding rules for all the consumers connected to this service attachment.
-        { # [Output Only] A consumer forwarding rule connected to this service attachment.
+        { # [Output Only] A consumer forwarding rule connected to this service attachment. [Deprecated] Do not use.
           &quot;forwardingRule&quot;: &quot;A String&quot;, # The url of a consumer forwarding rule.
+          &quot;pscConnectionId&quot;: &quot;A String&quot;, # The PSC connection id of the PSC Forwarding Rule.
           &quot;status&quot;: &quot;A String&quot;, # The status of the forwarding rule.
         },
       ],
@@ -680,8 +731,13 @@
         &quot;A String&quot;,
       ],
       &quot;producerForwardingRule&quot;: &quot;A String&quot;, # The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.
+      &quot;pscServiceAttachmentId&quot;: { # [Output Only] An 128-bit global unique ID of the PSC service attachment.
+        &quot;high&quot;: &quot;A String&quot;,
+        &quot;low&quot;: &quot;A String&quot;,
+      },
       &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
+      &quot;targetService&quot;: &quot;A String&quot;, # The URL of a service serving the endpoint identified by this service attachment.
     },
   ],
   &quot;kind&quot;: &quot;compute#serviceAttachmentList&quot;, # [Output Only] Type of the resource. Always compute#serviceAttachment for service attachments.
diff --git a/docs/dyn/compute_beta.subnetworks.html b/docs/dyn/compute_beta.subnetworks.html
index 16d01bc..e5b0a9b 100644
--- a/docs/dyn/compute_beta.subnetworks.html
+++ b/docs/dyn/compute_beta.subnetworks.html
@@ -180,7 +180,7 @@
             &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
             &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
             &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-            &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+            &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
             &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
               &quot;A String&quot;,
             ],
@@ -457,7 +457,7 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
@@ -715,7 +715,7 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
@@ -864,7 +864,7 @@
         &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
         &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
         &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-        &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+        &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
         &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
           &quot;A String&quot;,
         ],
@@ -1027,7 +1027,7 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
diff --git a/docs/dyn/compute_beta.targetPools.html b/docs/dyn/compute_beta.targetPools.html
index 571d76b..1474863 100644
--- a/docs/dyn/compute_beta.targetPools.html
+++ b/docs/dyn/compute_beta.targetPools.html
@@ -567,6 +567,8 @@
       &quot;annotations&quot;: { # Metadata defined as annotations for network endpoint.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # URL of the forwarding rule associated with the health status of the instance.
+      &quot;forwardingRuleIp&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
       &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
diff --git a/docs/dyn/compute_beta.vpnGateways.html b/docs/dyn/compute_beta.vpnGateways.html
index aa2c2c9..73b0d8e 100644
--- a/docs/dyn/compute_beta.vpnGateways.html
+++ b/docs/dyn/compute_beta.vpnGateways.html
@@ -160,6 +160,7 @@
             { # A VPN gateway interface.
               &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
               &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+                  # Not currently available in all Interconnect locations.
               &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
             },
           ],
@@ -328,6 +329,7 @@
     { # A VPN gateway interface.
       &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
       &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+          # Not currently available in all Interconnect locations.
       &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
     },
   ],
@@ -400,6 +402,7 @@
     { # A VPN gateway interface.
       &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
       &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+          # Not currently available in all Interconnect locations.
       &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
     },
   ],
@@ -525,6 +528,7 @@
         { # A VPN gateway interface.
           &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
           &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+              # Not currently available in all Interconnect locations.
           &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
         },
       ],
diff --git a/docs/dyn/compute_beta.vpnTunnels.html b/docs/dyn/compute_beta.vpnTunnels.html
index 7dabb33..0bc335a 100644
--- a/docs/dyn/compute_beta.vpnTunnels.html
+++ b/docs/dyn/compute_beta.vpnTunnels.html
@@ -178,7 +178,7 @@
               # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
               # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
               # - NO_INCOMING_PACKETS: No incoming packets from peer.
-              # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+              # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
               # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
               # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
               # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -372,7 +372,7 @@
       # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
       # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
       # - NO_INCOMING_PACKETS: No incoming packets from peer.
-      # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+      # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
       # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
       # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
       # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -435,7 +435,7 @@
       # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
       # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
       # - NO_INCOMING_PACKETS: No incoming packets from peer.
-      # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+      # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
       # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
       # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
       # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -586,7 +586,7 @@
           # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
           # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
           # - NO_INCOMING_PACKETS: No incoming packets from peer.
-          # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+          # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
           # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
           # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
           # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
diff --git a/docs/dyn/compute_v1.autoscalers.html b/docs/dyn/compute_v1.autoscalers.html
index 7f5aed7..ec31b78 100644
--- a/docs/dyn/compute_v1.autoscalers.html
+++ b/docs/dyn/compute_v1.autoscalers.html
@@ -154,6 +154,9 @@
                 #
                 # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
             &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+              &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+                  #
+                  # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
               &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
                   #
                   # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -423,6 +426,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -561,6 +567,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -787,6 +796,9 @@
             #
             # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
         &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+          &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+              #
+              # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
           &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
               #
               # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -955,6 +967,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -1163,6 +1178,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
diff --git a/docs/dyn/compute_v1.backendBuckets.html b/docs/dyn/compute_v1.backendBuckets.html
index 09f1447..c7f3865 100644
--- a/docs/dyn/compute_v1.backendBuckets.html
+++ b/docs/dyn/compute_v1.backendBuckets.html
@@ -388,6 +388,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -443,6 +444,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -586,6 +588,7 @@
             &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
           },
         ],
+        &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
         &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
         &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -672,6 +675,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -797,6 +801,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
diff --git a/docs/dyn/compute_v1.backendServices.html b/docs/dyn/compute_v1.backendServices.html
index 0e5ce45..549e644 100644
--- a/docs/dyn/compute_v1.backendServices.html
+++ b/docs/dyn/compute_v1.backendServices.html
@@ -329,6 +329,7 @@
                 &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
               },
             ],
+            &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
             &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
             &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
             &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -484,7 +485,7 @@
           &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
           &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
               #
-              # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+              # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
               #
               # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
               #
@@ -808,6 +809,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -963,7 +965,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
@@ -1005,6 +1007,8 @@
       &quot;annotations&quot;: { # Metadata defined as annotations for network endpoint.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # URL of the forwarding rule associated with the health status of the instance.
+      &quot;forwardingRuleIp&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
       &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
@@ -1122,6 +1126,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -1277,7 +1282,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -1481,6 +1486,7 @@
             &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
           },
         ],
+        &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
         &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
         &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -1636,7 +1642,7 @@
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
       &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
@@ -1783,6 +1789,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -1938,7 +1945,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -2208,6 +2215,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -2363,7 +2371,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
diff --git a/docs/dyn/compute_v1.instanceGroupManagers.html b/docs/dyn/compute_v1.instanceGroupManagers.html
index 437bd69..bb47e84 100644
--- a/docs/dyn/compute_v1.instanceGroupManagers.html
+++ b/docs/dyn/compute_v1.instanceGroupManagers.html
@@ -139,7 +139,7 @@
 <p class="firstline">Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, zone, instanceGroupManager, body=None, requestId=None)</a></code></p>
-<p class="firstline">Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
+<p class="firstline">Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.</p>
 <p class="toc_element">
   <code><a href="#resize">resize(project, zone, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method.</p>
@@ -305,6 +305,7 @@
           },
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+            &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
             &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
               {
                 &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -950,6 +951,7 @@
   },
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+    &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
     &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
       {
         &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -1097,6 +1099,7 @@
   },
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+    &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
     &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
       {
         &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -1330,6 +1333,7 @@
       },
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+        &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
         &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
           {
             &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -1753,6 +1757,7 @@
   },
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+    &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
     &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
       {
         &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -2032,7 +2037,7 @@
 
 <div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, zone, instanceGroupManager, body=None, requestId=None)</code>
-  <pre>Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
+  <pre>Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group&#x27;s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.
 
 If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
 
diff --git a/docs/dyn/compute_v1.instanceTemplates.html b/docs/dyn/compute_v1.instanceTemplates.html
index e48c689..d6740b3 100644
--- a/docs/dyn/compute_v1.instanceTemplates.html
+++ b/docs/dyn/compute_v1.instanceTemplates.html
@@ -206,6 +206,7 @@
   &quot;properties&quot;: { # The instance properties for this instance template.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -696,6 +697,7 @@
   &quot;properties&quot;: { # The instance properties for this instance template.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -1078,6 +1080,7 @@
       &quot;properties&quot;: { # The instance properties for this instance template.
         &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
           &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+          &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
         },
         &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
         &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
diff --git a/docs/dyn/compute_v1.instances.html b/docs/dyn/compute_v1.instances.html
index daafa90..472c2af 100644
--- a/docs/dyn/compute_v1.instances.html
+++ b/docs/dyn/compute_v1.instances.html
@@ -97,7 +97,7 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(project, zone, instance, requestId=None)</a></code></p>
-<p class="firstline">Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.</p>
+<p class="firstline">Deletes the specified Instance resource. For more information, see Deleting an instance.</p>
 <p class="toc_element">
   <code><a href="#deleteAccessConfig">deleteAccessConfig(project, zone, instance, accessConfig, networkInterface, requestId=None)</a></code></p>
 <p class="firstline">Deletes an access config from an instance's network interface.</p>
@@ -432,6 +432,7 @@
             # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
           &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
             &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+            &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
           },
           &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
           &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -999,6 +1000,7 @@
   &quot;instanceProperties&quot;: { # The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -1251,15 +1253,15 @@
       ],
     },
   },
-  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).
-    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, like: zones/us-central1-a.
+  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). # Policy for chosing target zone.
+    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.
       &quot;a_key&quot;: {
-        &quot;preference&quot;: &quot;A String&quot;,
+        &quot;preference&quot;: &quot;A String&quot;, # Preference for a given locaction: ALLOW or DENY.
       },
     },
   },
-  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created.
-  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or predefined_names must be set. The pattern should contain one consecutive sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names like inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
+  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.
+  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern should contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names such as inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
   &quot;perInstanceProperties&quot;: { # Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.
     &quot;a_key&quot;: { # Per-instance properties to be set on individual instances. To be extended in the future.
       &quot;name&quot;: &quot;A String&quot;, # This field is only temporary. It will be removed. Do not use it.
@@ -1352,7 +1354,7 @@
 
 <div class="method">
     <code class="details" id="delete">delete(project, zone, instance, requestId=None)</code>
-  <pre>Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.
+  <pre>Deletes the specified Instance resource. For more information, see Deleting an instance.
 
 Args:
   project: string, Project ID for this request. (required)
@@ -1604,6 +1606,7 @@
     # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
   &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
     &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+    &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
   },
   &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -2342,6 +2345,7 @@
     # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
   &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
     &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+    &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
   },
   &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -2745,6 +2749,7 @@
         # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
       &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
         &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+        &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
       },
       &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
       &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
@@ -5085,6 +5090,7 @@
     # An instance is a virtual machine that is hosted on Google Cloud Platform. For more information, read Virtual Machine Instances. (== resource_for {$api_version}.instances ==)
   &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
     &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+    &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
   },
   &quot;canIpForward&quot;: True or False, # Allows this instance to send and receive packets with non-matching destination or source IPs. This is required if you plan to use this instance to forward routes. For more information, see Enabling IP Forwarding.
   &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options.
diff --git a/docs/dyn/compute_v1.interconnectAttachments.html b/docs/dyn/compute_v1.interconnectAttachments.html
index fb62ed6..84cc3f6 100644
--- a/docs/dyn/compute_v1.interconnectAttachments.html
+++ b/docs/dyn/compute_v1.interconnectAttachments.html
@@ -165,10 +165,12 @@
           &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
               # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
               # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+              # Not currently available in all Interconnect locations.
           &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
           &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+              # Not currently available in all Interconnect locations.
             &quot;A String&quot;,
           ],
           &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -378,10 +380,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -460,10 +464,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -631,10 +637,12 @@
       &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
           # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
           # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+          # Not currently available in all Interconnect locations.
       &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
       &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+          # Not currently available in all Interconnect locations.
         &quot;A String&quot;,
       ],
       &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
@@ -744,10 +752,12 @@
   &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this interconnect attachment:
       # - NONE is the default value, which means that the attachment carries unencrypted traffic. VMs can send traffic to, or receive traffic from, this type of attachment.
       # - IPSEC indicates that the attachment carries only traffic encrypted by an IPsec device such as an HA VPN gateway. VMs cannot directly send traffic to, or receive traffic from, such an attachment. To use IPsec-encrypted Cloud Interconnect, create the attachment using this option.
+      # Not currently available in all Interconnect locations.
   &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets with Google or otherwise to debug backend connectivity issues. [Deprecated] This field is not used.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic will traverse through.
   &quot;ipsecInternalAddresses&quot;: [ # URL of addresses that have been reserved for the interconnect attachment, Used only for interconnect attachment that has the encryption option as IPSEC. The addresses must be RFC 1918 IP address ranges. When creating HA VPN gateway over the interconnect attachment, if the attachment is configured to use an RFC 1918 IP address, then the VPN gateway?s IP address will be allocated from the IP address range specified here. For example, if the HA VPN gateway?s interface 0 is paired to this interconnect attachment, then an RFC 1918 IP address for the VPN gateway interface 0 will be allocated from the IP address specified for this interconnect attachment. If this field is not specified for interconnect attachment that has encryption option as IPSEC, later on when creating HA VPN gateway on this interconnect attachment, the HA VPN gateway&#x27;s IP address will be allocated from regional external IP address pool.
+      # Not currently available in all Interconnect locations.
     &quot;A String&quot;,
   ],
   &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.
diff --git a/docs/dyn/compute_v1.regionAutoscalers.html b/docs/dyn/compute_v1.regionAutoscalers.html
index de5ed6f..c9c23f4 100644
--- a/docs/dyn/compute_v1.regionAutoscalers.html
+++ b/docs/dyn/compute_v1.regionAutoscalers.html
@@ -212,6 +212,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -350,6 +353,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -576,6 +582,9 @@
             #
             # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
         &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+          &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+              #
+              # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
           &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
               #
               # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -744,6 +753,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
@@ -952,6 +964,9 @@
         #
         # Virtual machine initialization times might vary because of numerous factors. We recommend that you test how long an instance may take to initialize. To do this, create an instance and time the startup process.
     &quot;cpuUtilization&quot;: { # CPU utilization policy. # Defines the CPU utilization policy that allows the autoscaler to scale based on the average CPU utilization of a managed instance group.
+      &quot;predictiveMethod&quot;: &quot;A String&quot;, # Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:
+          #
+          # * NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics. * OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.
       &quot;utilizationTarget&quot;: 3.14, # The target CPU utilization that the autoscaler maintains. Must be a float value in the range (0, 1]. If not specified, the default is 0.6.
           #
           # If the CPU level is below the target utilization, the autoscaler scales in the number of instances until it reaches the minimum number of instances you specified or until the average CPU of your instances reaches the target utilization.
diff --git a/docs/dyn/compute_v1.regionBackendServices.html b/docs/dyn/compute_v1.regionBackendServices.html
index 1112a3a..ca071db 100644
--- a/docs/dyn/compute_v1.regionBackendServices.html
+++ b/docs/dyn/compute_v1.regionBackendServices.html
@@ -293,6 +293,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -448,7 +449,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
@@ -487,6 +488,8 @@
       &quot;annotations&quot;: { # Metadata defined as annotations for network endpoint.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # URL of the forwarding rule associated with the health status of the instance.
+      &quot;forwardingRuleIp&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
       &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
@@ -605,6 +608,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -760,7 +764,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -965,6 +969,7 @@
             &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
           },
         ],
+        &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
         &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
         &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -1120,7 +1125,7 @@
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
       &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
@@ -1268,6 +1273,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -1423,7 +1429,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
@@ -1610,6 +1616,7 @@
         &quot;ttl&quot;: 42, # The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s (30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
       },
     ],
+    &quot;requestCoalescing&quot;: True or False, # If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.
     &quot;serveWhileStale&quot;: 42, # Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. This setting defines the default &quot;max-stale&quot; duration for any cached responses that do not specify a max-stale directive. Stale responses that exceed the TTL configured here will not be served. The default limit (max-stale) is 86400s (1 day), which will allow stale content to be served up to this limit beyond the max-age (or s-max-age) of a cached response. The maximum allowed value is 604800 (1 week). Set this to zero (0) to disable serve-while-stale.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
@@ -1765,7 +1772,7 @@
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
   &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
diff --git a/docs/dyn/compute_v1.regionInstanceGroupManagers.html b/docs/dyn/compute_v1.regionInstanceGroupManagers.html
index 6df04cb..1df74bf 100644
--- a/docs/dyn/compute_v1.regionInstanceGroupManagers.html
+++ b/docs/dyn/compute_v1.regionInstanceGroupManagers.html
@@ -133,7 +133,7 @@
 <p class="firstline">Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.</p>
 <p class="toc_element">
   <code><a href="#recreateInstances">recreateInstances(project, region, instanceGroupManager, body=None, requestId=None)</a></code></p>
-<p class="firstline">Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.</p>
+<p class="firstline">Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group's current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.</p>
 <p class="toc_element">
   <code><a href="#resize">resize(project, region, instanceGroupManager, size, requestId=None)</a></code></p>
 <p class="firstline">Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances.</p>
@@ -732,6 +732,7 @@
   },
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+    &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
     &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
       {
         &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -879,6 +880,7 @@
   },
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+    &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
     &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
       {
         &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -1112,6 +1114,7 @@
       },
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+        &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
         &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
           {
             &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -1535,6 +1538,7 @@
   },
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;distributionPolicy&quot;: { # Policy specifying the intended distribution of managed instances across zones in a regional managed instance group.
+    &quot;targetShape&quot;: &quot;A String&quot;, # The distribution shape to which the group converges either proactively or on resize events (depending on the value set in updatePolicy.instanceRedistributionType).
     &quot;zones&quot;: [ # Zones where the regional managed instance group will create and manage its instances.
       {
         &quot;zone&quot;: &quot;A String&quot;, # The URL of the zone. The zone must exist in the region where the managed instance group is located.
@@ -1814,7 +1818,7 @@
 
 <div class="method">
     <code class="details" id="recreateInstances">recreateInstances(project, region, instanceGroupManager, body=None, requestId=None)</code>
-  <pre>Flags the specified instances in the managed instance group to be immediately recreated. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of the recreating action with the listmanagedinstances method.
+  <pre>Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group&#x27;s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances.
 
 If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
 
diff --git a/docs/dyn/compute_v1.regionInstances.html b/docs/dyn/compute_v1.regionInstances.html
index c5a6d6c..cfd898f 100644
--- a/docs/dyn/compute_v1.regionInstances.html
+++ b/docs/dyn/compute_v1.regionInstances.html
@@ -96,6 +96,7 @@
   &quot;instanceProperties&quot;: { # The instance properties defining the VM instances to be created. Required if sourceInstanceTemplate is not provided.
     &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. Options that would traditionally be configured in a BIOS belong here. Features that require operating system support may have corresponding entries in the GuestOsFeatures of an Image (e.g., whether or not the OS in the Image supports nested virtualization being enabled or disabled). # Controls for advanced machine-related behavior features.
       &quot;enableNestedVirtualization&quot;: True or False, # Whether to enable nested virtualization or not (default is false).
+      &quot;threadsPerCore&quot;: 42, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
     },
     &quot;canIpForward&quot;: True or False, # Enables instances created based on these properties to send packets with source IP addresses other than their own and receive packets with destination IP addresses other than their own. If these instances will be used as an IP gateway or it will be set as the next-hop in a Route resource, specify true. If unsure, leave this set to false. See the Enable IP forwarding documentation for more information.
     &quot;confidentialInstanceConfig&quot;: { # A set of Confidential Instance options. # Specifies the Confidential Instance options.
@@ -348,15 +349,15 @@
       ],
     },
   },
-  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).
-    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, like: zones/us-central1-a.
+  &quot;locationPolicy&quot;: { # Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region). # Policy for chosing target zone.
+    &quot;locations&quot;: { # Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.
       &quot;a_key&quot;: {
-        &quot;preference&quot;: &quot;A String&quot;,
+        &quot;preference&quot;: &quot;A String&quot;, # Preference for a given locaction: ALLOW or DENY.
       },
     },
   },
-  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created.
-  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or predefined_names must be set. The pattern should contain one consecutive sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names like inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
+  &quot;minCount&quot;: &quot;A String&quot;, # The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.
+  &quot;namePattern&quot;: &quot;A String&quot;, # The string pattern used for the names of the VMs. Either name_pattern or per_instance_properties must be set. The pattern should contain one continuous sequence of placeholder hash characters (#) with each character corresponding to one digit of the generated instance name. Example: name_pattern of inst-#### will generate instance names such as inst-0001, inst-0002, ... . If there already exist instance(s) whose names match the name pattern in the same project and zone, then the generated instance numbers will start after the biggest existing number. For example, if there exists an instance with name inst-0050, then instance names generated using the pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern placeholder #...# can contain up to 18 characters.
   &quot;perInstanceProperties&quot;: { # Per-instance properties to be set on individual instances. Keys of this map specify requested instance names. Can be empty if name_pattern is used.
     &quot;a_key&quot;: { # Per-instance properties to be set on individual instances. To be extended in the future.
       &quot;name&quot;: &quot;A String&quot;, # This field is only temporary. It will be removed. Do not use it.
diff --git a/docs/dyn/compute_v1.routers.html b/docs/dyn/compute_v1.routers.html
index 6606d69..3f256b1 100644
--- a/docs/dyn/compute_v1.routers.html
+++ b/docs/dyn/compute_v1.routers.html
@@ -192,6 +192,7 @@
           &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+              # Not currently available in all Interconnect locations.
           &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
           &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
             {
@@ -439,6 +440,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -815,6 +817,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1019,6 +1022,7 @@
       &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+          # Not currently available in all Interconnect locations.
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
         {
@@ -1166,6 +1170,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1352,6 +1357,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
@@ -1462,6 +1468,7 @@
     &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
     &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
     &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+        # Not currently available in all Interconnect locations.
     &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
     &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
       {
@@ -1580,6 +1587,7 @@
   &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp in RFC3339 text format.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;encryptedInterconnectRouter&quot;: True or False, # Field to indicate if a router is dedicated to use with encrypted Interconnect Attachment (IPsec-encrypted Cloud Interconnect feature).
+      # Not currently available in all Interconnect locations.
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;interfaces&quot;: [ # Router interfaces. Each interface requires either one linked resource, (for example, linkedVpnTunnel), or IP address and IP address range (for example, ipRange), or both.
     {
diff --git a/docs/dyn/compute_v1.securityPolicies.html b/docs/dyn/compute_v1.securityPolicies.html
index 0a39d42..fb036f6 100644
--- a/docs/dyn/compute_v1.securityPolicies.html
+++ b/docs/dyn/compute_v1.securityPolicies.html
@@ -122,7 +122,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
   &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
@@ -332,7 +332,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
       &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
@@ -388,7 +388,7 @@
   An object of the form:
 
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
   &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
@@ -450,7 +450,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
       &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
@@ -603,7 +603,7 @@
       &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
       &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
         { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-          &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+          &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
           &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
@@ -744,7 +744,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
   &quot;rules&quot;: [ # A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match &quot;*&quot;). If no rules are provided when creating a security policy, a default rule with action &quot;allow&quot; will be added.
     { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-      &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+      &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
       &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
@@ -867,7 +867,7 @@
     The object takes the form of:
 
 { # Represents a rule that describes one or more match conditions along with the action to be taken when traffic matches this condition (allow or deny).
-  &quot;action&quot;: &quot;A String&quot;, # The Action to preform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
+  &quot;action&quot;: &quot;A String&quot;, # The Action to perform when the client connection triggers the rule. Can currently be either &quot;allow&quot; or &quot;deny()&quot; where valid values for status are 403, 404, and 502.
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;kind&quot;: &quot;compute#securityPolicyRule&quot;, # [Output only] Type of the resource. Always compute#securityPolicyRule for security policy rules
   &quot;match&quot;: { # Represents a match condition that incoming traffic is evaluated against. Exactly one field must be specified. # A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding &#x27;action&#x27; is enforced.
diff --git a/docs/dyn/compute_v1.subnetworks.html b/docs/dyn/compute_v1.subnetworks.html
index 00290b3..25857de 100644
--- a/docs/dyn/compute_v1.subnetworks.html
+++ b/docs/dyn/compute_v1.subnetworks.html
@@ -173,7 +173,7 @@
             &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
             &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
             &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-            &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+            &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
             &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
               &quot;A String&quot;,
             ],
@@ -443,7 +443,7 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
@@ -694,7 +694,7 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
@@ -836,7 +836,7 @@
         &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
         &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
         &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-        &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+        &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
         &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
           &quot;A String&quot;,
         ],
@@ -992,7 +992,7 @@
     &quot;enable&quot;: True or False, # Whether to enable flow logging for this subnetwork. If this field is not explicitly set, it will not appear in get listings. If not set the default behavior is to disable flow logging.
     &quot;filterExpr&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Export filter used to define which VPC flow logs should be logged.
     &quot;flowSampling&quot;: 3.14, # Can only be specified if VPC flow logging for this subnetwork is enabled. The value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default is 0.5, which means half of all collected logs are reported.
-    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is INCLUDE_ALL_METADATA.
+    &quot;metadata&quot;: &quot;A String&quot;, # Can only be specified if VPC flow logs for this subnetwork is enabled. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default is EXCLUDE_ALL_METADATA.
     &quot;metadataFields&quot;: [ # Can only be specified if VPC flow logs for this subnetwork is enabled and &quot;metadata&quot; was set to CUSTOM_METADATA.
       &quot;A String&quot;,
     ],
diff --git a/docs/dyn/compute_v1.targetPools.html b/docs/dyn/compute_v1.targetPools.html
index 3102b3b..3feedb4 100644
--- a/docs/dyn/compute_v1.targetPools.html
+++ b/docs/dyn/compute_v1.targetPools.html
@@ -564,6 +564,8 @@
       &quot;annotations&quot;: { # Metadata defined as annotations for network endpoint.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;forwardingRule&quot;: &quot;A String&quot;, # URL of the forwarding rule associated with the health status of the instance.
+      &quot;forwardingRuleIp&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
       &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
diff --git a/docs/dyn/compute_v1.vpnGateways.html b/docs/dyn/compute_v1.vpnGateways.html
index 02f4ea5..8bd91ce 100644
--- a/docs/dyn/compute_v1.vpnGateways.html
+++ b/docs/dyn/compute_v1.vpnGateways.html
@@ -160,6 +160,7 @@
             { # A VPN gateway interface.
               &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
               &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+                  # Not currently available in all Interconnect locations.
               &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
             },
           ],
@@ -328,6 +329,7 @@
     { # A VPN gateway interface.
       &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
       &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+          # Not currently available in all Interconnect locations.
       &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
     },
   ],
@@ -400,6 +402,7 @@
     { # A VPN gateway interface.
       &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
       &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+          # Not currently available in all Interconnect locations.
       &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
     },
   ],
@@ -525,6 +528,7 @@
         { # A VPN gateway interface.
           &quot;id&quot;: 42, # The numeric ID of this VPN gateway interface.
           &quot;interconnectAttachment&quot;: &quot;A String&quot;, # URL of the interconnect attachment resource. When the value of this field is present, the VPN Gateway will be used for IPsec-encrypted Cloud Interconnect; all Egress or Ingress traffic for this VPN Gateway interface will go through the specified interconnect attachment resource.
+              # Not currently available in all Interconnect locations.
           &quot;ipAddress&quot;: &quot;A String&quot;, # [Output Only] The external IP address for this VPN gateway interface.
         },
       ],
diff --git a/docs/dyn/compute_v1.vpnTunnels.html b/docs/dyn/compute_v1.vpnTunnels.html
index 30ac202..f7f1219 100644
--- a/docs/dyn/compute_v1.vpnTunnels.html
+++ b/docs/dyn/compute_v1.vpnTunnels.html
@@ -166,7 +166,7 @@
               # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
               # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
               # - NO_INCOMING_PACKETS: No incoming packets from peer.
-              # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+              # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
               # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
               # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
               # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -354,7 +354,7 @@
       # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
       # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
       # - NO_INCOMING_PACKETS: No incoming packets from peer.
-      # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+      # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
       # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
       # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
       # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -411,7 +411,7 @@
       # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
       # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
       # - NO_INCOMING_PACKETS: No incoming packets from peer.
-      # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+      # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
       # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
       # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
       # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
@@ -556,7 +556,7 @@
           # - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
           # - FAILED: Tunnel creation has failed and the tunnel is not ready to be used.
           # - NO_INCOMING_PACKETS: No incoming packets from peer.
-          # - REJECTED: Tunnel configuration was rejected, can be result of being blacklisted.
+          # - REJECTED: Tunnel configuration was rejected, can be result of being denied access.
           # - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all required resources.
           # - STOPPED: Tunnel is stopped due to its Forwarding Rules being deleted for Classic VPN tunnels or the project is in frozen state.
           # - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP, probably behind NAT.
diff --git a/docs/dyn/container_v1.projects.locations.clusters.html b/docs/dyn/container_v1.projects.locations.clusters.html
index c4b3d74..95b465b 100644
--- a/docs/dyn/container_v1.projects.locations.clusters.html
+++ b/docs/dyn/container_v1.projects.locations.clusters.html
@@ -319,6 +319,9 @@
         &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
       },
     ],
+    &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes
+      &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled for all nodes in this cluster.
+    },
     &quot;createTime&quot;: &quot;A String&quot;, # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     &quot;currentMasterVersion&quot;: &quot;A String&quot;, # [Output only] The current software version of the master endpoint.
     &quot;currentNodeCount&quot;: 42, # [Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
@@ -882,6 +885,9 @@
       &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
     },
   ],
+  &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes
+    &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled for all nodes in this cluster.
+  },
   &quot;createTime&quot;: &quot;A String&quot;, # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
   &quot;currentMasterVersion&quot;: &quot;A String&quot;, # [Output only] The current software version of the master endpoint.
   &quot;currentNodeCount&quot;: 42, # [Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
@@ -1348,6 +1354,9 @@
           &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
         },
       ],
+      &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes
+        &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled for all nodes in this cluster.
+      },
       &quot;createTime&quot;: &quot;A String&quot;, # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       &quot;currentMasterVersion&quot;: &quot;A String&quot;, # [Output only] The current software version of the master endpoint.
       &quot;currentNodeCount&quot;: 42, # [Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
diff --git a/docs/dyn/container_v1.projects.zones.clusters.html b/docs/dyn/container_v1.projects.zones.clusters.html
index 2f69bb4..9fdfdc5 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.html
+++ b/docs/dyn/container_v1.projects.zones.clusters.html
@@ -420,6 +420,9 @@
         &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
       },
     ],
+    &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes
+      &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled for all nodes in this cluster.
+    },
     &quot;createTime&quot;: &quot;A String&quot;, # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     &quot;currentMasterVersion&quot;: &quot;A String&quot;, # [Output only] The current software version of the master endpoint.
     &quot;currentNodeCount&quot;: 42, # [Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
@@ -983,6 +986,9 @@
       &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
     },
   ],
+  &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes
+    &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled for all nodes in this cluster.
+  },
   &quot;createTime&quot;: &quot;A String&quot;, # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
   &quot;currentMasterVersion&quot;: &quot;A String&quot;, # [Output only] The current software version of the master endpoint.
   &quot;currentNodeCount&quot;: 42, # [Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
@@ -1493,6 +1499,9 @@
           &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
         },
       ],
+      &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes
+        &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled for all nodes in this cluster.
+      },
       &quot;createTime&quot;: &quot;A String&quot;, # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
       &quot;currentMasterVersion&quot;: &quot;A String&quot;, # [Output only] The current software version of the master endpoint.
       &quot;currentNodeCount&quot;: 42, # [Output only] The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
diff --git a/docs/dyn/content_v2_1.accounts.html b/docs/dyn/content_v2_1.accounts.html
index 4be5f75..609872b 100644
--- a/docs/dyn/content_v2_1.accounts.html
+++ b/docs/dyn/content_v2_1.accounts.html
@@ -595,7 +595,7 @@
   &quot;action&quot;: &quot;A String&quot;, # Action to perform for this link. The `&quot;request&quot;` action is only available to select merchants. Acceptable values are: - &quot;`approve`&quot; - &quot;`remove`&quot; - &quot;`request`&quot;
   &quot;linkType&quot;: &quot;A String&quot;, # Type of the link between the two accounts. Acceptable values are: - &quot;`channelPartner`&quot; - &quot;`eCommercePlatform`&quot;
   &quot;linkedAccountId&quot;: &quot;A String&quot;, # The ID of the linked account.
-  &quot;services&quot;: [ #  Acceptable values are: - &quot;`shoppingAdsProductManagement`&quot; - &quot;`shoppingAdsOther`&quot; - &quot;`shoppingActionsProductManagement`&quot; - &quot;`shoppingActionsOrderManagement`&quot; - &quot;`shoppingActionsOther`&quot;
+  &quot;services&quot;: [ #  Acceptable values are: - &quot;`shoppingAdsProductManagement`&quot; - &quot;`shoppingActionsProductManagement`&quot; - &quot;`shoppingActionsOrderManagement`&quot;
     &quot;A String&quot;,
   ],
 }
diff --git a/docs/dyn/content_v2_1.buyongoogleprograms.html b/docs/dyn/content_v2_1.buyongoogleprograms.html
index d72fa1d..c5e6922 100644
--- a/docs/dyn/content_v2_1.buyongoogleprograms.html
+++ b/docs/dyn/content_v2_1.buyongoogleprograms.html
@@ -75,23 +75,52 @@
 <h1><a href="content_v2_1.html">Content API for Shopping</a> . <a href="content_v2_1.buyongoogleprograms.html">buyongoogleprograms</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="#activate">activate(merchantId, regionCode, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Reactivates the BoG program in your Merchant Center account. Moves the program to the active state when allowed, e.g. when paused. Important: This method is only whitelisted for selected merchants.</p>
+<p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#get">get(merchantId, regionCode, x__xgafv=None)</a></code></p>
-<p class="firstline">Retrieves a status of BoG program for your Merchant Center account.</p>
+<p class="firstline">Retrieves a status of the BoG program for your Merchant Center account.</p>
 <p class="toc_element">
   <code><a href="#onboard">onboard(merchantId, regionCode, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Onboards BoG in your Merchant Center account. By using this method, you agree to the [Terms of Service](https://merchants.google.com/mc/termsofservice/transactions/US/latest). Calling this method is only possible if the authenticated account is the same as the merchant id in the request. Calling this method multiple times will only accept Terms of Service if the latest version is not currently signed.</p>
+<p class="firstline">Onboards the BoG program in your Merchant Center account. By using this method, you agree to the [Terms of Service](https://merchants.google.com/mc/termsofservice/transactions/US/latest). Calling this method is only possible if the authenticated account is the same as the merchant id in the request. Calling this method multiple times will only accept Terms of Service if the latest version is not currently signed.</p>
+<p class="toc_element">
+  <code><a href="#pause">pause(merchantId, regionCode, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Pauses the BoG program in your Merchant Center account. Important: This method is only whitelisted for selected merchants.</p>
+<p class="toc_element">
+  <code><a href="#requestreview">requestreview(merchantId, regionCode, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Requests review and then activates the BoG program in your Merchant Center account for the first time. Moves the program to the REVIEW_PENDING state. Important: This method is only whitelisted for selected merchants.</p>
 <h3>Method Details</h3>
 <div class="method">
+    <code class="details" id="activate">activate(merchantId, regionCode, body=None, x__xgafv=None)</code>
+  <pre>Reactivates the BoG program in your Merchant Center account. Moves the program to the active state when allowed, e.g. when paused. Important: This method is only whitelisted for selected merchants.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  regionCode: string, The program region code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Currently only US is available. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the ActivateProgram method.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+</pre>
+</div>
+
+<div class="method">
     <code class="details" id="close">close()</code>
   <pre>Close httplib2 connections.</pre>
 </div>
 
 <div class="method">
     <code class="details" id="get">get(merchantId, regionCode, x__xgafv=None)</code>
-  <pre>Retrieves a status of BoG program for your Merchant Center account.
+  <pre>Retrieves a status of the BoG program for your Merchant Center account.
 
 Args:
   merchantId: string, Required. The ID of the account. (required)
@@ -113,7 +142,7 @@
 
 <div class="method">
     <code class="details" id="onboard">onboard(merchantId, regionCode, body=None, x__xgafv=None)</code>
-  <pre>Onboards BoG in your Merchant Center account. By using this method, you agree to the [Terms of Service](https://merchants.google.com/mc/termsofservice/transactions/US/latest). Calling this method is only possible if the authenticated account is the same as the merchant id in the request. Calling this method multiple times will only accept Terms of Service if the latest version is not currently signed.
+  <pre>Onboards the BoG program in your Merchant Center account. By using this method, you agree to the [Terms of Service](https://merchants.google.com/mc/termsofservice/transactions/US/latest). Calling this method is only possible if the authenticated account is the same as the merchant id in the request. Calling this method multiple times will only accept Terms of Service if the latest version is not currently signed.
 
 Args:
   merchantId: string, Required. The ID of the account. (required)
@@ -132,4 +161,44 @@
 </pre>
 </div>
 
+<div class="method">
+    <code class="details" id="pause">pause(merchantId, regionCode, body=None, x__xgafv=None)</code>
+  <pre>Pauses the BoG program in your Merchant Center account. Important: This method is only whitelisted for selected merchants.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  regionCode: string, The program region code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Currently only US is available. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the PauseProgram method.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="requestreview">requestreview(merchantId, regionCode, body=None, x__xgafv=None)</code>
+  <pre>Requests review and then activates the BoG program in your Merchant Center account for the first time. Moves the program to the REVIEW_PENDING state. Important: This method is only whitelisted for selected merchants.
+
+Args:
+  merchantId: string, Required. The ID of the account. (required)
+  regionCode: string, The program region code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Currently only US is available. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the RequestReviewProgram method.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+</pre>
+</div>
+
 </body></html>
\ No newline at end of file
diff --git a/docs/dyn/content_v2_1.products.html b/docs/dyn/content_v2_1.products.html
index fa2ef53..f5c3ac2 100644
--- a/docs/dyn/content_v2_1.products.html
+++ b/docs/dyn/content_v2_1.products.html
@@ -120,6 +120,7 @@
         &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
           &quot;A String&quot;,
         ],
+        &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
         &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
         &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
           &quot;A String&quot;,
@@ -232,6 +233,10 @@
             &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
             &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
             &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
+            &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+            &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+            &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
+            &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
             &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
             &quot;price&quot;: { # Fixed shipping price, represented as a number.
               &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
@@ -331,6 +336,7 @@
         &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
           &quot;A String&quot;,
         ],
+        &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
         &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
         &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
           &quot;A String&quot;,
@@ -443,6 +449,10 @@
             &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
             &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
             &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
+            &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+            &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+            &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
+            &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
             &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
             &quot;price&quot;: { # Fixed shipping price, represented as a number.
               &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
@@ -549,6 +559,7 @@
   &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
     &quot;A String&quot;,
   ],
+  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
   &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
   &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
     &quot;A String&quot;,
@@ -661,6 +672,10 @@
       &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
       &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
       &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
+      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
+      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
       &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
       &quot;price&quot;: { # Fixed shipping price, represented as a number.
         &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
@@ -742,6 +757,7 @@
   &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
     &quot;A String&quot;,
   ],
+  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
   &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
   &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
     &quot;A String&quot;,
@@ -854,6 +870,10 @@
       &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
       &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
       &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
+      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
+      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
       &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
       &quot;price&quot;: { # Fixed shipping price, represented as a number.
         &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
@@ -934,6 +954,7 @@
   &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
     &quot;A String&quot;,
   ],
+  &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
   &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
   &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
     &quot;A String&quot;,
@@ -1046,6 +1067,10 @@
       &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
       &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
       &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
+      &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+      &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+      &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
+      &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
       &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
       &quot;price&quot;: { # Fixed shipping price, represented as a number.
         &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
@@ -1138,6 +1163,7 @@
       &quot;additionalImageLinks&quot;: [ # Additional URLs of images of the item.
         &quot;A String&quot;,
       ],
+      &quot;additionalSizeType&quot;: &quot;A String&quot;, # Additional cut of the item. Used together with size_type to represent combined size types for apparel items.
       &quot;adsGrouping&quot;: &quot;A String&quot;, # Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.
       &quot;adsLabels&quot;: [ # Similar to ads_grouping, but only works on CPC.
         &quot;A String&quot;,
@@ -1250,6 +1276,10 @@
           &quot;country&quot;: &quot;A String&quot;, # The CLDR territory code of the country to which an item will ship.
           &quot;locationGroupName&quot;: &quot;A String&quot;, # The location where the shipping is applicable, represented by a location group name.
           &quot;locationId&quot;: &quot;A String&quot;, # The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.
+          &quot;maxHandlingTime&quot;: &quot;A String&quot;, # Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+          &quot;maxTransitTime&quot;: &quot;A String&quot;, # Maximum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.
+          &quot;minHandlingTime&quot;: &quot;A String&quot;, # Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is not required if maxHandlingTime is present.
+          &quot;minTransitTime&quot;: &quot;A String&quot;, # Minimum transit time (inclusive) between when the order has shipped and when it is delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it is not required if maxTransitTime is present.
           &quot;postalCode&quot;: &quot;A String&quot;, # The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.
           &quot;price&quot;: { # Fixed shipping price, represented as a number.
             &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
diff --git a/docs/dyn/content_v2_1.reports.html b/docs/dyn/content_v2_1.reports.html
index 19329cd..5e04631 100644
--- a/docs/dyn/content_v2_1.reports.html
+++ b/docs/dyn/content_v2_1.reports.html
@@ -118,7 +118,7 @@
     { # Result row returned from the search query.
       &quot;metrics&quot;: { # Performance metrics. Values are only set for metrics requested explicitly in the request&#x27;s search query. # Metrics requested by the merchant in the query. Metric values are only set for metrics requested explicitly in the query.
         &quot;clicks&quot;: &quot;A String&quot;, # Number of clicks.
-        &quot;ctr&quot;: 3.14, # Number of clicks merchant&#x27;s products receive (clicks) divided by the number of times the products are shown (impressions).
+        &quot;ctr&quot;: 3.14, # Click-through rate - the number of clicks merchant&#x27;s products receive (clicks) divided by the number of times the products are shown (impressions).
         &quot;impressions&quot;: &quot;A String&quot;, # Number of times merchant&#x27;s products are shown.
       },
       &quot;segments&quot;: { # Dimensions according to which metrics are segmented in the response. Values of product dimensions, e.g., offer id, reflect the state of a product at the time of the corresponding event, e.g., impression or order. Segment fields cannot be selected in queries without also selecting at least one metric field. Values are only set for dimensions requested explicitly in the request&#x27;s search query. # Segmentation dimensions requested by the merchant in the query. Dimension values are only set for dimensions requested explicitly in the query.
diff --git a/docs/dyn/dataflow_v1b3.projects.html b/docs/dyn/dataflow_v1b3.projects.html
index 076e561..0a3fb35 100644
--- a/docs/dyn/dataflow_v1b3.projects.html
+++ b/docs/dyn/dataflow_v1b3.projects.html
@@ -147,13 +147,14 @@
       },
       &quot;time&quot;: &quot;A String&quot;, # The timestamp of the worker_message.
       &quot;workerHealthReport&quot;: { # WorkerHealthReport contains information about the health of a worker. The VM should be identified by the labels attached to the WorkerMessage that this health ping belongs to. # The health of a worker.
-        &quot;msg&quot;: &quot;A String&quot;, # A message describing any unusual health reports.
+        &quot;msg&quot;: &quot;A String&quot;, # Message describing any unusual health reports.
         &quot;pods&quot;: [ # The pods running on the worker. See: http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod This field is used by the worker to send the status of the indvidual containers running on each worker.
           {
             &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
           },
         ],
         &quot;reportInterval&quot;: &quot;A String&quot;, # 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.
+        &quot;vmBrokenCode&quot;: &quot;A String&quot;, # Code to describe a specific reason, if known, that a VM has reported broken state.
         &quot;vmIsBroken&quot;: True or False, # Whether the VM is in a permanently broken state. Broken VMs should be abandoned or deleted ASAP to avoid assigning or completing any work.
         &quot;vmIsHealthy&quot;: True or False, # Whether the VM is currently healthy.
         &quot;vmStartupTime&quot;: &quot;A String&quot;, # The time the VM was booted.
@@ -166,8 +167,8 @@
         },
       },
       &quot;workerMessageCode&quot;: { # A message code is used to report status and error messages to the service. The message codes are intended to be machine readable. The service will take care of translating these into user understandable messages if necessary. Example use cases: 1. Worker processes reporting successful startup. 2. Worker processes reporting specific errors (e.g. package staging failure). # A worker message code.
-        &quot;code&quot;: &quot;A String&quot;, # The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. &quot;HARNESS_STARTED&quot; might be used to indicate the worker harness has started. 2. &quot;GCS_DOWNLOAD_ERROR&quot; might be used to indicate an error downloading a GCS file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.
-        &quot;parameters&quot;: { # Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a &quot;HARNESS_STARTED&quot; message parameters might provide the name of the worker and additional data like timing information. 2. For a &quot;GCS_DOWNLOAD_ERROR&quot; parameters might contain fields listing the GCS objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn&#x27;t typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.
+        &quot;code&quot;: &quot;A String&quot;, # The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. &quot;HARNESS_STARTED&quot; might be used to indicate the worker harness has started. 2. &quot;GCS_DOWNLOAD_ERROR&quot; might be used to indicate an error downloading a Cloud Storage file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.
+        &quot;parameters&quot;: { # Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a &quot;HARNESS_STARTED&quot; message parameters might provide the name of the worker and additional data like timing information. 2. For a &quot;GCS_DOWNLOAD_ERROR&quot; parameters might contain fields listing the Cloud Storage objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn&#x27;t typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.
           &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
         },
       },
diff --git a/docs/dyn/dataflow_v1b3.projects.jobs.html b/docs/dyn/dataflow_v1b3.projects.jobs.html
index 09e8014..661cda1 100644
--- a/docs/dyn/dataflow_v1b3.projects.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.jobs.html
@@ -284,8 +284,8 @@
       },
       &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
       &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-        &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-          { # Metadata for a BigTable connector used by the job.
+        &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+          { # Metadata for a Cloud BigTable connector used by the job.
             &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
             &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
             &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -311,7 +311,7 @@
           },
         ],
         &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-          { # Metadata for a PubSub connector used by the job.
+          { # Metadata for a Pub/Sub connector used by the job.
             &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
             &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
           },
@@ -376,7 +376,7 @@
                 &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
               },
             ],
-            &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+            &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
             &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
             &quot;outputSource&quot;: [ # Output sources for this stage.
               { # Description of an input or output of an execution stage.
@@ -443,7 +443,7 @@
           },
         },
       ],
-      &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+      &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
       &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
         &quot;A String&quot;,
       ],
@@ -613,8 +613,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -640,7 +640,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -705,7 +705,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -772,7 +772,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -926,8 +926,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -953,7 +953,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -1018,7 +1018,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -1085,7 +1085,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -1246,8 +1246,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -1273,7 +1273,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -1338,7 +1338,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -1405,7 +1405,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -1623,8 +1623,8 @@
       },
       &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
       &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-        &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-          { # Metadata for a BigTable connector used by the job.
+        &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+          { # Metadata for a Cloud BigTable connector used by the job.
             &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
             &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
             &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -1650,7 +1650,7 @@
           },
         ],
         &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-          { # Metadata for a PubSub connector used by the job.
+          { # Metadata for a Pub/Sub connector used by the job.
             &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
             &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
           },
@@ -1715,7 +1715,7 @@
                 &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
               },
             ],
-            &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+            &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
             &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
             &quot;outputSource&quot;: [ # Output sources for this stage.
               { # Description of an input or output of an execution stage.
@@ -1782,7 +1782,7 @@
           },
         },
       ],
-      &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+      &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
       &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
         &quot;A String&quot;,
       ],
@@ -1992,8 +1992,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -2019,7 +2019,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -2084,7 +2084,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -2151,7 +2151,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -2298,8 +2298,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -2325,7 +2325,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -2390,7 +2390,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -2457,7 +2457,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html b/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html
index 79b5b5a..68ea1cf 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html
@@ -143,7 +143,7 @@
         &quot;version&quot;: &quot;A String&quot;, # Optional. The SDK version.
       },
     },
-    &quot;containerSpecGcsPath&quot;: &quot;A String&quot;, # Gcs path to a file with json serialized ContainerSpec as content.
+    &quot;containerSpecGcsPath&quot;: &quot;A String&quot;, # Cloud Storage path to a file with json serialized ContainerSpec as content.
     &quot;environment&quot;: { # The environment values to be set at runtime for flex template. # The runtime environment for the FlexTemplate job
       &quot;additionalExperiments&quot;: [ # Additional experiment flags for the job.
         &quot;A String&quot;,
@@ -318,8 +318,8 @@
     },
     &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
     &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-      &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-        { # Metadata for a BigTable connector used by the job.
+      &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+        { # Metadata for a Cloud BigTable connector used by the job.
           &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
           &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
           &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -345,7 +345,7 @@
         },
       ],
       &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-        { # Metadata for a PubSub connector used by the job.
+        { # Metadata for a Pub/Sub connector used by the job.
           &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
           &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
         },
@@ -410,7 +410,7 @@
               &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
             },
           ],
-          &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+          &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
           &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
           &quot;outputSource&quot;: [ # Output sources for this stage.
             { # Description of an input or output of an execution stage.
@@ -477,7 +477,7 @@
         },
       },
     ],
-    &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+    &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
     &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
       &quot;A String&quot;,
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.html b/docs/dyn/dataflow_v1b3.projects.locations.html
index 62348fd..858a862 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.html
@@ -130,13 +130,14 @@
       },
       &quot;time&quot;: &quot;A String&quot;, # The timestamp of the worker_message.
       &quot;workerHealthReport&quot;: { # WorkerHealthReport contains information about the health of a worker. The VM should be identified by the labels attached to the WorkerMessage that this health ping belongs to. # The health of a worker.
-        &quot;msg&quot;: &quot;A String&quot;, # A message describing any unusual health reports.
+        &quot;msg&quot;: &quot;A String&quot;, # Message describing any unusual health reports.
         &quot;pods&quot;: [ # The pods running on the worker. See: http://kubernetes.io/v1.1/docs/api-reference/v1/definitions.html#_v1_pod This field is used by the worker to send the status of the indvidual containers running on each worker.
           {
             &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
           },
         ],
         &quot;reportInterval&quot;: &quot;A String&quot;, # 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.
+        &quot;vmBrokenCode&quot;: &quot;A String&quot;, # Code to describe a specific reason, if known, that a VM has reported broken state.
         &quot;vmIsBroken&quot;: True or False, # Whether the VM is in a permanently broken state. Broken VMs should be abandoned or deleted ASAP to avoid assigning or completing any work.
         &quot;vmIsHealthy&quot;: True or False, # Whether the VM is currently healthy.
         &quot;vmStartupTime&quot;: &quot;A String&quot;, # The time the VM was booted.
@@ -149,8 +150,8 @@
         },
       },
       &quot;workerMessageCode&quot;: { # A message code is used to report status and error messages to the service. The message codes are intended to be machine readable. The service will take care of translating these into user understandable messages if necessary. Example use cases: 1. Worker processes reporting successful startup. 2. Worker processes reporting specific errors (e.g. package staging failure). # A worker message code.
-        &quot;code&quot;: &quot;A String&quot;, # The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. &quot;HARNESS_STARTED&quot; might be used to indicate the worker harness has started. 2. &quot;GCS_DOWNLOAD_ERROR&quot; might be used to indicate an error downloading a GCS file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.
-        &quot;parameters&quot;: { # Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a &quot;HARNESS_STARTED&quot; message parameters might provide the name of the worker and additional data like timing information. 2. For a &quot;GCS_DOWNLOAD_ERROR&quot; parameters might contain fields listing the GCS objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn&#x27;t typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.
+        &quot;code&quot;: &quot;A String&quot;, # The code is a string intended for consumption by a machine that identifies the type of message being sent. Examples: 1. &quot;HARNESS_STARTED&quot; might be used to indicate the worker harness has started. 2. &quot;GCS_DOWNLOAD_ERROR&quot; might be used to indicate an error downloading a Cloud Storage file as part of the boot process of one of the worker containers. This is a string and not an enum to make it easy to add new codes without waiting for an API change.
+        &quot;parameters&quot;: { # Parameters contains specific information about the code. This is a struct to allow parameters of different types. Examples: 1. For a &quot;HARNESS_STARTED&quot; message parameters might provide the name of the worker and additional data like timing information. 2. For a &quot;GCS_DOWNLOAD_ERROR&quot; parameters might contain fields listing the Cloud Storage objects being downloaded and fields containing errors. In general complex data structures should be avoided. If a worker needs to send a specific and complicated data structure then please consider defining a new proto and adding it to the data oneof in WorkerMessageResponse. Conventions: Parameters should only be used for information that isn&#x27;t typically passed as a label. hostname and other worker identifiers should almost always be passed as labels since they will be included on most messages.
           &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
         },
       },
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
index d170b8c..02cd320 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.jobs.html
@@ -273,8 +273,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -300,7 +300,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -365,7 +365,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -432,7 +432,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -585,8 +585,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -612,7 +612,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -677,7 +677,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -744,7 +744,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -905,8 +905,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -932,7 +932,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -997,7 +997,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -1064,7 +1064,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -1357,8 +1357,8 @@
       },
       &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
       &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-        &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-          { # Metadata for a BigTable connector used by the job.
+        &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+          { # Metadata for a Cloud BigTable connector used by the job.
             &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
             &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
             &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -1384,7 +1384,7 @@
           },
         ],
         &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-          { # Metadata for a PubSub connector used by the job.
+          { # Metadata for a Pub/Sub connector used by the job.
             &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
             &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
           },
@@ -1449,7 +1449,7 @@
                 &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
               },
             ],
-            &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+            &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
             &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
             &quot;outputSource&quot;: [ # Output sources for this stage.
               { # Description of an input or output of an execution stage.
@@ -1516,7 +1516,7 @@
           },
         },
       ],
-      &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+      &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
       &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
         &quot;A String&quot;,
       ],
@@ -1728,8 +1728,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -1755,7 +1755,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -1820,7 +1820,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -1887,7 +1887,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -2033,8 +2033,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -2060,7 +2060,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -2125,7 +2125,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -2192,7 +2192,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.templates.html b/docs/dyn/dataflow_v1b3.projects.locations.templates.html
index cc6b611..d7b4dc4 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.templates.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.templates.html
@@ -269,8 +269,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -296,7 +296,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -361,7 +361,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -428,7 +428,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -549,7 +549,7 @@
   &quot;update&quot;: True or False, # If set, replace the existing pipeline with the name specified by jobName with this pipeline, preserving state.
 }
 
-  dynamicTemplate_gcsPath: string, Path to dynamic template spec file on GCS. The file must be a Json serialized DynamicTemplateFieSpec object.
+  dynamicTemplate_gcsPath: string, Path to dynamic template spec file on Cloud Storage. The file must be a Json serialized DynamicTemplateFieSpec object.
   dynamicTemplate_stagingLocation: string, Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.
   gcsPath: string, A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with &#x27;gs://&#x27;.
   validateOnly: boolean, If true, the request is validated but not actually executed. Defaults to false.
@@ -690,8 +690,8 @@
     },
     &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
     &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-      &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-        { # Metadata for a BigTable connector used by the job.
+      &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+        { # Metadata for a Cloud BigTable connector used by the job.
           &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
           &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
           &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -717,7 +717,7 @@
         },
       ],
       &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-        { # Metadata for a PubSub connector used by the job.
+        { # Metadata for a Pub/Sub connector used by the job.
           &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
           &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
         },
@@ -782,7 +782,7 @@
               &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
             },
           ],
-          &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+          &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
           &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
           &quot;outputSource&quot;: [ # Output sources for this stage.
             { # Description of an input or output of an execution stage.
@@ -849,7 +849,7 @@
         },
       },
     ],
-    &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+    &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
     &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
       &quot;A String&quot;,
     ],
diff --git a/docs/dyn/dataflow_v1b3.projects.templates.html b/docs/dyn/dataflow_v1b3.projects.templates.html
index c4f7e37..d319230 100644
--- a/docs/dyn/dataflow_v1b3.projects.templates.html
+++ b/docs/dyn/dataflow_v1b3.projects.templates.html
@@ -268,8 +268,8 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
   &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-    &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-      { # Metadata for a BigTable connector used by the job.
+    &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+      { # Metadata for a Cloud BigTable connector used by the job.
         &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
         &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
         &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -295,7 +295,7 @@
       },
     ],
     &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-      { # Metadata for a PubSub connector used by the job.
+      { # Metadata for a Pub/Sub connector used by the job.
         &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
         &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
       },
@@ -360,7 +360,7 @@
             &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
           },
         ],
-        &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+        &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
         &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
         &quot;outputSource&quot;: [ # Output sources for this stage.
           { # Description of an input or output of an execution stage.
@@ -427,7 +427,7 @@
       },
     },
   ],
-  &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+  &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
   &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
     &quot;A String&quot;,
   ],
@@ -547,7 +547,7 @@
   &quot;update&quot;: True or False, # If set, replace the existing pipeline with the name specified by jobName with this pipeline, preserving state.
 }
 
-  dynamicTemplate_gcsPath: string, Path to dynamic template spec file on GCS. The file must be a Json serialized DynamicTemplateFieSpec object.
+  dynamicTemplate_gcsPath: string, Path to dynamic template spec file on Cloud Storage. The file must be a Json serialized DynamicTemplateFieSpec object.
   dynamicTemplate_stagingLocation: string, Cloud Storage path for staging dependencies. Must be a valid Cloud Storage URL, beginning with `gs://`.
   gcsPath: string, A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with &#x27;gs://&#x27;.
   location: string, The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) to which to direct the request.
@@ -689,8 +689,8 @@
     },
     &quot;id&quot;: &quot;A String&quot;, # The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.
     &quot;jobMetadata&quot;: { # Metadata available primarily for filtering jobs. Will be included in the ListJob response and Job SUMMARY view. # This field is populated by the Dataflow service to support filtering jobs by the metadata values provided here. Populated for ListJobs and all GetJob views SUMMARY and higher.
-      &quot;bigTableDetails&quot;: [ # Identification of a BigTable source used in the Dataflow job.
-        { # Metadata for a BigTable connector used by the job.
+      &quot;bigTableDetails&quot;: [ # Identification of a Cloud BigTable source used in the Dataflow job.
+        { # Metadata for a Cloud BigTable connector used by the job.
           &quot;instanceId&quot;: &quot;A String&quot;, # InstanceId accessed in the connection.
           &quot;projectId&quot;: &quot;A String&quot;, # ProjectId accessed in the connection.
           &quot;tableId&quot;: &quot;A String&quot;, # TableId accessed in the connection.
@@ -716,7 +716,7 @@
         },
       ],
       &quot;pubsubDetails&quot;: [ # Identification of a PubSub source used in the Dataflow job.
-        { # Metadata for a PubSub connector used by the job.
+        { # Metadata for a Pub/Sub connector used by the job.
           &quot;subscription&quot;: &quot;A String&quot;, # Subscription used in the connection.
           &quot;topic&quot;: &quot;A String&quot;, # Topic accessed in the connection.
         },
@@ -781,7 +781,7 @@
               &quot;userName&quot;: &quot;A String&quot;, # Human-readable name for this source; may be user or system generated.
             },
           ],
-          &quot;kind&quot;: &quot;A String&quot;, # Type of tranform this stage is executing.
+          &quot;kind&quot;: &quot;A String&quot;, # Type of transform this stage is executing.
           &quot;name&quot;: &quot;A String&quot;, # Dataflow service generated name for this stage.
           &quot;outputSource&quot;: [ # Output sources for this stage.
             { # Description of an input or output of an execution stage.
@@ -848,7 +848,7 @@
         },
       },
     ],
-    &quot;stepsLocation&quot;: &quot;A String&quot;, # The GCS location where the steps are stored.
+    &quot;stepsLocation&quot;: &quot;A String&quot;, # The Cloud Storage location where the steps are stored.
     &quot;tempFiles&quot;: [ # A set of files the system should be aware of that are used for temporary storage. These temporary files will be removed on job completion. No duplicates are allowed. No file patterns are supported. The supported files are: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}
       &quot;A String&quot;,
     ],
diff --git a/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html b/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html
index f585a7f..52897b6 100644
--- a/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html
+++ b/docs/dyn/dataproc_v1.projects.locations.workflowTemplates.html
@@ -371,6 +371,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -820,6 +823,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -1296,6 +1302,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -1836,6 +1845,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -2326,6 +2338,9 @@
               },
             },
             &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+              &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+                &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+              },
               &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
               &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
                 &quot;a_key&quot;: &quot;A String&quot;,
@@ -2881,6 +2896,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -3330,6 +3348,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
diff --git a/docs/dyn/dataproc_v1.projects.regions.clusters.html b/docs/dyn/dataproc_v1.projects.regions.clusters.html
index 4851fb0..c7f7828 100644
--- a/docs/dyn/dataproc_v1.projects.regions.clusters.html
+++ b/docs/dyn/dataproc_v1.projects.regions.clusters.html
@@ -150,6 +150,9 @@
       },
     },
     &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+      &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+        &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+      },
       &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
       &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
         &quot;a_key&quot;: &quot;A String&quot;,
@@ -510,6 +513,9 @@
       },
     },
     &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+      &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+        &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+      },
       &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
       &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
         &quot;a_key&quot;: &quot;A String&quot;,
@@ -851,6 +857,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -1112,6 +1121,9 @@
       },
     },
     &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+      &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+        &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+      },
       &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
       &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
         &quot;a_key&quot;: &quot;A String&quot;,
diff --git a/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html b/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html
index 3cf95fe..f816041 100644
--- a/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html
+++ b/docs/dyn/dataproc_v1.projects.regions.workflowTemplates.html
@@ -371,6 +371,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -820,6 +823,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -1296,6 +1302,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -1836,6 +1845,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -2326,6 +2338,9 @@
               },
             },
             &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+              &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+                &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+              },
               &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
               &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
                 &quot;a_key&quot;: &quot;A String&quot;,
@@ -2881,6 +2896,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
@@ -3330,6 +3348,9 @@
           },
         },
         &quot;gceClusterConfig&quot;: { # Common config settings for resources of Compute Engine cluster instances, applicable to all instances in the cluster. # Optional. The shared Compute Engine config settings for all instances in a cluster.
+          &quot;confidentialInstanceConfig&quot;: { # Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs) NEXT ID: 2 # Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)
+            &quot;enableConfidentialCompute&quot;: True or False, # Optional. Defines whether the instance should have confidential compute enabled.
+          },
           &quot;internalIpOnly&quot;: True or False, # Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.
           &quot;metadata&quot;: { # The Compute Engine metadata entries to add to all instances (see Project and instance metadata (https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
             &quot;a_key&quot;: &quot;A String&quot;,
diff --git a/docs/dyn/datastore_v1beta3.projects.html b/docs/dyn/datastore_v1beta3.projects.html
index cbd1a3b..fd4ef0b 100644
--- a/docs/dyn/datastore_v1beta3.projects.html
+++ b/docs/dyn/datastore_v1beta3.projects.html
@@ -232,7 +232,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # 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.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;update&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to update. The entity must already exist. Must have a complete key path.
@@ -250,7 +283,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # 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.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;upsert&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to upsert. The entity may or may not already exist. The entity key&#x27;s final path element may be incomplete.
@@ -268,7 +334,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # 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.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
     },
@@ -381,7 +480,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # 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.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -405,7 +537,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # 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.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -503,24 +668,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # 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.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -559,24 +707,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # 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.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -637,24 +768,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # 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.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -741,7 +855,40 @@
             ],
           },
           &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-            &quot;a_key&quot;: # Object with schema name: Value
+            &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+                &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                  # Object with schema name: Value
+                ],
+              },
+              &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+              &quot;booleanValue&quot;: True or False, # A boolean value.
+              &quot;doubleValue&quot;: 3.14, # A double value.
+              &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+              &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+              &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
+              &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+              &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+                &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                  &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                  &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+                },
+                &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                  { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                    &quot;id&quot;: &quot;A String&quot;, # 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.
+                    &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                    &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
+                  },
+                ],
+              },
+              &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+              &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+              &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+              &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+            },
           },
         },
         &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -780,24 +927,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # 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.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # 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 `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/dialogflow_v2.projects.conversationProfiles.html b/docs/dyn/dialogflow_v2.projects.conversationProfiles.html
index 866d553..d938ec5 100644
--- a/docs/dyn/dialogflow_v2.projects.conversationProfiles.html
+++ b/docs/dyn/dialogflow_v2.projects.conversationProfiles.html
@@ -117,6 +117,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -158,6 +198,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -165,6 +206,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -199,6 +251,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -240,6 +332,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -247,6 +340,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -306,6 +410,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -347,6 +491,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -354,6 +499,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -399,6 +555,46 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
       &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+        &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+          &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+            { # Config for suggestion features.
+              &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+                &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+              },
+              &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+              &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+                &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+                &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+                  &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+                  &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+                  &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+                },
+                &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+                  &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+                },
+                &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+                  &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+                  &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+              },
+              &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+                &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+              },
+              &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+                &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+                &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+              },
+            },
+          ],
+          &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+        },
         &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
           &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
             { # Config for suggestion features.
@@ -440,6 +636,7 @@
           &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
         },
         &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+          &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
           &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
         },
         &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -447,6 +644,17 @@
           &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
         },
       },
+      &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+        &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+          &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+        },
+        &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+          &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+          &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+          &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+          &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+        },
+      },
       &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
       &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
         &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -500,6 +708,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -541,6 +789,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -548,6 +797,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -583,6 +843,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -624,6 +924,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -631,6 +932,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
diff --git a/docs/dyn/dialogflow_v2.projects.locations.conversationProfiles.html b/docs/dyn/dialogflow_v2.projects.locations.conversationProfiles.html
index f358f90..751f371 100644
--- a/docs/dyn/dialogflow_v2.projects.locations.conversationProfiles.html
+++ b/docs/dyn/dialogflow_v2.projects.locations.conversationProfiles.html
@@ -117,6 +117,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -158,6 +198,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -165,6 +206,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -199,6 +251,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -240,6 +332,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -247,6 +340,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -306,6 +410,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -347,6 +491,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -354,6 +499,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -399,6 +555,46 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
       &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+        &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+          &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+            { # Config for suggestion features.
+              &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+                &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+              },
+              &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+              &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+                &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+                &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+                  &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+                  &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+                  &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+                },
+                &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+                  &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+                },
+                &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+                  &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+                  &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+              },
+              &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+                &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+              },
+              &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+                &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+                &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+              },
+            },
+          ],
+          &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+        },
         &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
           &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
             { # Config for suggestion features.
@@ -440,6 +636,7 @@
           &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
         },
         &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+          &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
           &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
         },
         &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -447,6 +644,17 @@
           &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
         },
       },
+      &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+        &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+          &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+        },
+        &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+          &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+          &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+          &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+          &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+        },
+      },
       &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
       &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
         &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -500,6 +708,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -541,6 +789,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -548,6 +797,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -583,6 +843,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assist to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it defaults to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, at most 5 documents are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge bases are supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION and FAQ will use this field.
+            &quot;noSmalltalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -624,6 +924,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -631,6 +932,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language which represents the conversationProfile. If unspecified, the default language code en-us applies. Users need to create a ConversationProfile for each language they want to support.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
diff --git a/docs/dyn/dialogflow_v2beta1.projects.conversationProfiles.html b/docs/dyn/dialogflow_v2beta1.projects.conversationProfiles.html
index d819074..2f883b5 100644
--- a/docs/dyn/dialogflow_v2beta1.projects.conversationProfiles.html
+++ b/docs/dyn/dialogflow_v2beta1.projects.conversationProfiles.html
@@ -117,6 +117,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -158,6 +198,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -165,6 +206,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -199,6 +251,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -240,6 +332,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -247,6 +340,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -306,6 +410,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -347,6 +491,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -354,6 +499,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -399,6 +555,46 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
       &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+        &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+          &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+            { # Config for suggestion features.
+              &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+                &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+              },
+              &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+              &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+                &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+                &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+                  &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+                  &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+                  &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+                },
+                &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+                  &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+                },
+                &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+                  &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+                  &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+              },
+              &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+                &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+              },
+              &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+                &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+                &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+              },
+            },
+          ],
+          &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+        },
         &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
           &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
             { # Config for suggestion features.
@@ -440,6 +636,7 @@
           &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
         },
         &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+          &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
           &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
         },
         &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -447,6 +644,17 @@
           &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
         },
       },
+      &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+        &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+          &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+        },
+        &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+          &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+          &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+          &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+          &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+        },
+      },
       &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
       &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
         &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -500,6 +708,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -541,6 +789,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -548,6 +797,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -583,6 +843,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -624,6 +924,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -631,6 +932,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
diff --git a/docs/dyn/dialogflow_v2beta1.projects.conversations.messages.html b/docs/dyn/dialogflow_v2beta1.projects.conversations.messages.html
index 202a3ad..fb5998b 100644
--- a/docs/dyn/dialogflow_v2beta1.projects.conversations.messages.html
+++ b/docs/dyn/dialogflow_v2beta1.projects.conversations.messages.html
@@ -179,7 +179,7 @@
 
 Args:
   parent: string, Required. The name of the conversation to list messages for. Format: `projects//locations//conversations/` (required)
-  filter: string, Optional. Filter on message fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds &gt; 1551790877964485` or `create_time &gt; 2017-01-15T01:30:15.01Z`. For more information about filtering, see [API Filtering](https://aip.dev/160).
+  filter: string, Optional. Filter on message fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds &gt; 1551790877964485` or `create_time &gt; &quot;2017-01-15T01:30:15.01Z&quot;`. For more information about filtering, see [API Filtering](https://aip.dev/160).
   pageSize: integer, Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.
   pageToken: string, Optional. The next_page_token value returned from a previous list request.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/dialogflow_v2beta1.projects.conversations.participants.suggestions.html b/docs/dyn/dialogflow_v2beta1.projects.conversations.participants.suggestions.html
index 8c6c222..2386f9b 100644
--- a/docs/dyn/dialogflow_v2beta1.projects.conversations.participants.suggestions.html
+++ b/docs/dyn/dialogflow_v2beta1.projects.conversations.participants.suggestions.html
@@ -165,7 +165,7 @@
 
 Args:
   parent: string, Required. The name of the participant to fetch suggestions for. Format: `projects//locations//conversations//participants/`. (required)
-  filter: string, Optional. Filter on suggestions fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds &gt; 1551790877964485` or `create_time &gt; 2017-01-15T01:30:15.01Z` For more information about filtering, see [API Filtering](https://aip.dev/160).
+  filter: string, Optional. Filter on suggestions fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds &gt; 1551790877964485` or `create_time &gt; &quot;2017-01-15T01:30:15.01Z&quot;` For more information about filtering, see [API Filtering](https://aip.dev/160).
   pageSize: integer, Optional. The maximum number of items to return in a single page. The default value is 100; the maximum value is 1000.
   pageToken: string, Optional. The next_page_token value returned from a previous list request.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/dialogflow_v2beta1.projects.locations.conversationProfiles.html b/docs/dyn/dialogflow_v2beta1.projects.locations.conversationProfiles.html
index 0e173a5..84a003f 100644
--- a/docs/dyn/dialogflow_v2beta1.projects.locations.conversationProfiles.html
+++ b/docs/dyn/dialogflow_v2beta1.projects.locations.conversationProfiles.html
@@ -117,6 +117,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -158,6 +198,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -165,6 +206,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -199,6 +251,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -240,6 +332,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -247,6 +340,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -306,6 +410,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -347,6 +491,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -354,6 +499,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -399,6 +555,46 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
       &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+        &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+          &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+            { # Config for suggestion features.
+              &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+                &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+              },
+              &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+              &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+                &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+                &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+                  &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+                  &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+                  &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+                },
+                &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+                  &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+                },
+                &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+                  &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+                  &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                    &quot;A String&quot;,
+                  ],
+                },
+                &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+              },
+              &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+                &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+              },
+              &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+                &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+                &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+              },
+            },
+          ],
+          &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+        },
         &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
           &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
             { # Config for suggestion features.
@@ -440,6 +636,7 @@
           &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
         },
         &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+          &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
           &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
         },
         &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -447,6 +644,17 @@
           &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
         },
       },
+      &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+        &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+          &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+        },
+        &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+          &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+          &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+          &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+          &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+        },
+      },
       &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
       &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
         &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -500,6 +708,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -541,6 +789,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -548,6 +797,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
@@ -583,6 +843,46 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. Create time of the conversation profile.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. Human readable name for this profile. Max length 1024 bytes.
   &quot;humanAgentAssistantConfig&quot;: { # Defines the Human Agent Assistant to connect to a conversation. # Configuration for agent assistance to use with this profile.
+    &quot;endUserSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of end user participant. Currently, this feature is not general available, please contact Google to get access.
+      &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
+        { # Config for suggestion features.
+          &quot;conversationModelConfig&quot;: { # Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY. # Configs of custom conversation model.
+            &quot;model&quot;: &quot;A String&quot;, # Required. Conversation model resource name. Format: `projects//conversationModels/`.
+          },
+          &quot;enableEventBasedSuggestion&quot;: True or False, # Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST.
+          &quot;queryConfig&quot;: { # Config for suggestion query. # Configs of query.
+            &quot;confidenceThreshold&quot;: 3.14, # Confidence threshold of query result. Agent Assist gives each suggestion a score in the range [0.0, 1.0], based on the relevance between the suggestion and the current conversation context. A score of 0.0 has no relevance, while a score of 1.0 has high relevance. Only suggestions with a score greater than or equal to the value of this field are included in the results. For a baseline model (the default), the recommended value is in the range [0.05, 0.1]. For a custom model, there is no recommended value. Tune this value by starting from a very low value and slowly increasing until you have desired results. If this field is not set, it is default to 0.0, which means that all suggestions are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE.
+            &quot;contextFilterSettings&quot;: { # Settings that determine how to filter recent conversation context when generating suggestions. # Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.
+              &quot;dropHandoffMessages&quot;: True or False, # If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.
+              &quot;dropIvrMessages&quot;: True or False, # If set to true, all messages from ivr stage are dropped.
+              &quot;dropVirtualAgentMessages&quot;: True or False, # If set to true, all messages from virtual agent are dropped.
+            },
+            &quot;dialogflowQuerySource&quot;: { # Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST. # Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST.
+              &quot;agent&quot;: &quot;A String&quot;, # Required. The name of a dialogflow virtual agent used for end user side intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in the same Dialogflow project.
+            },
+            &quot;documentQuerySource&quot;: { # Document source settings. Supported features: SMART_REPLY, SMART_COMPOSE. # Query from knowledge base document. It is used by: SMART_REPLY, SMART_COMPOSE.
+              &quot;documents&quot;: [ # Required. Knowledge documents to query from. Format: `projects//locations//knowledgeBases//documents/`. Currently, only one document is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;knowledgeBaseQuerySource&quot;: { # Knowledge base source settings. Supported features: ARTICLE_SUGGESTION, FAQ. # Query from knowledgebase. It is used by: ARTICLE_SUGGESTION, FAQ.
+              &quot;knowledgeBases&quot;: [ # Required. Knowledge bases to query. Format: `projects//locations//knowledgeBases/`. Currently, only one knowledge base is supported.
+                &quot;A String&quot;,
+              ],
+            },
+            &quot;maxResults&quot;: 42, # Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.
+          },
+          &quot;suggestionFeature&quot;: { # The type of Human Agent Assistant API suggestion to perform, and the maximum number of results to return for that type. Multiple `Feature` objects can be specified in the `features` list. # The suggestion feature.
+            &quot;type&quot;: &quot;A String&quot;, # Type of Human Agent Assistant API feature to request.
+          },
+          &quot;suggestionTriggerSettings&quot;: { # Settings of suggestion trigger. # Settings of suggestion trigger. Currently, only ARTICLE_SUGGESTION, FAQ, and DIALOGFLOW_ASSIST will use this field.
+            &quot;noSmallTalk&quot;: True or False, # Do not trigger if last utterance is small talk.
+            &quot;onlyEndUser&quot;: True or False, # Only trigger suggestion if participant role of last utterance is END_USER.
+          },
+        },
+      ],
+      &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
+    },
     &quot;humanAgentSuggestionConfig&quot;: { # Detail human agent assistant config. # Configuration for agent assistance of human agent participant.
       &quot;featureConfigs&quot;: [ # Configuration of different suggestion features. One feature can have only one config.
         { # Config for suggestion features.
@@ -624,6 +924,7 @@
       &quot;groupSuggestionResponses&quot;: True or False, # If `group_suggestion_responses` is false, and there are multiple `feature_configs` in `event based suggestion` or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.
     },
     &quot;messageAnalysisConfig&quot;: { # Configuration for analyses to run on each conversation message. # Configuration for message analysis.
+      &quot;enableEntityExtraction&quot;: True or False, # Enable entity extraction in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Currently, this feature is not general available, please contact Google to get access.
       &quot;enableSentimentAnalysis&quot;: True or False, # Enable sentiment analysis in conversation messages on [agent assist stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). If unspecified, defaults to false. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user&#x27;s attitude as positive, negative, or neutral: https://cloud.google.com/natural-language/docs/basics#sentiment_analysis For Participants.StreamingAnalyzeContent method, result will be in StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For Participants.AnalyzeContent method, result will be in AnalyzeContentResponse.message.SentimentAnalysisResult For Conversations.ListMessages method, result will be in ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub notification is configured, result will be in ConversationEvent.new_message_payload.SentimentAnalysisResult.
     },
     &quot;notificationConfig&quot;: { # Defines notification behavior. # Pub/Sub topic on which to publish new agent assistant events.
@@ -631,6 +932,17 @@
       &quot;topic&quot;: &quot;A String&quot;, # Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos. Notification works for phone calls, if this topic either is in the same project as the conversation or you grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service Agent` role in the topic project. Format: `projects//locations//topics/`.
     },
   },
+  &quot;humanAgentHandoffConfig&quot;: { # Defines the hand off to a live agent, typically on which external agent service provider to connect to a conversation. Currently, this feature is not general available, please contact Google to get access. # Configuration for connecting to a live agent. Currently, this feature is not general available, please contact Google to get access.
+    &quot;livePersonConfig&quot;: { # Configuration specific to LivePerson (https://www.liveperson.com). # Uses LivePerson (https://www.liveperson.com).
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Required. Account number of the LivePerson account to connect. This is the account number you input at the login page.
+    },
+    &quot;salesforceLiveAgentConfig&quot;: { # Configuration specific to Salesforce Live Agent. # Uses Salesforce Live Agent.
+      &quot;buttonId&quot;: &quot;A String&quot;, # Required. Live Agent chat button ID.
+      &quot;deploymentId&quot;: &quot;A String&quot;, # Required. Live Agent deployment ID.
+      &quot;endpointDomain&quot;: &quot;A String&quot;, # Required. Domain of the Live Agent endpoint for this agent. You can find the endpoint URL in the `Live Agent settings` page. For example if URL has the form https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in d.la4-c2-phx.salesforceliveagent.com.
+      &quot;organizationId&quot;: &quot;A String&quot;, # Required. The organization ID of the Salesforce account.
+    },
+  },
   &quot;languageCode&quot;: &quot;A String&quot;, # Language code for the conversation profile. If not specified, the language is en-US. Language at ConversationProfile should be set for all non en-us languages.
   &quot;loggingConfig&quot;: { # Defines logging behavior for conversation lifecycle events. # Configuration for logging conversation lifecycle events.
     &quot;enableStackdriverLogging&quot;: True or False, # Whether to log conversation events like CONVERSATION_STARTED to Stackdriver in the conversation project as JSON format ConversationEvent protos.
diff --git a/docs/dyn/dialogflow_v2beta1.projects.locations.conversations.messages.html b/docs/dyn/dialogflow_v2beta1.projects.locations.conversations.messages.html
index b64d1c9..02ba6ce 100644
--- a/docs/dyn/dialogflow_v2beta1.projects.locations.conversations.messages.html
+++ b/docs/dyn/dialogflow_v2beta1.projects.locations.conversations.messages.html
@@ -179,7 +179,7 @@
 
 Args:
   parent: string, Required. The name of the conversation to list messages for. Format: `projects//locations//conversations/` (required)
-  filter: string, Optional. Filter on message fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds &gt; 1551790877964485` or `create_time &gt; 2017-01-15T01:30:15.01Z`. For more information about filtering, see [API Filtering](https://aip.dev/160).
+  filter: string, Optional. Filter on message fields. Currently predicates on `create_time` and `create_time_epoch_microseconds` are supported. `create_time` only support milliseconds accuracy. E.g., `create_time_epoch_microseconds &gt; 1551790877964485` or `create_time &gt; &quot;2017-01-15T01:30:15.01Z&quot;`. For more information about filtering, see [API Filtering](https://aip.dev/160).
   pageSize: integer, Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.
   pageToken: string, Optional. The next_page_token value returned from a previous list request.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/dialogflow_v3.projects.locations.agents.environments.sessions.html b/docs/dyn/dialogflow_v3.projects.locations.agents.environments.sessions.html
index f234882..46dff20 100644
--- a/docs/dyn/dialogflow_v3.projects.locations.agents.environments.sessions.html
+++ b/docs/dyn/dialogflow_v3.projects.locations.agents.environments.sessions.html
@@ -155,6 +155,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1031,6 +1032,7 @@
     },
     &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
       &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+      &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
       &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
       &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
         &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1884,6 +1886,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/dialogflow_v3.projects.locations.agents.flows.html b/docs/dyn/dialogflow_v3.projects.locations.agents.flows.html
index 021f4a0..84b4ae0 100644
--- a/docs/dyn/dialogflow_v3.projects.locations.agents.flows.html
+++ b/docs/dyn/dialogflow_v3.projects.locations.agents.flows.html
@@ -259,6 +259,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -512,6 +515,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -791,6 +797,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1092,6 +1101,9 @@
         &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
         &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
       },
+      &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+        &quot;A String&quot;,
+      ],
       &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
         { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
           &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1363,6 +1375,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1617,6 +1632,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
diff --git a/docs/dyn/dialogflow_v3.projects.locations.agents.sessions.html b/docs/dyn/dialogflow_v3.projects.locations.agents.sessions.html
index 4473b57..ac5e3c6 100644
--- a/docs/dyn/dialogflow_v3.projects.locations.agents.sessions.html
+++ b/docs/dyn/dialogflow_v3.projects.locations.agents.sessions.html
@@ -155,6 +155,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1031,6 +1032,7 @@
     },
     &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
       &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+      &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
       &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
       &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
         &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1884,6 +1886,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/dialogflow_v3.projects.locations.agents.testCases.html b/docs/dyn/dialogflow_v3.projects.locations.agents.testCases.html
index 70e3496..9af262d 100644
--- a/docs/dyn/dialogflow_v3.projects.locations.agents.testCases.html
+++ b/docs/dyn/dialogflow_v3.projects.locations.agents.testCases.html
@@ -714,6 +714,9 @@
               &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
               &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
             },
+            &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+              &quot;A String&quot;,
+            ],
             &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
               { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
                 &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1545,6 +1548,9 @@
               &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
               &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
             },
+            &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+              &quot;A String&quot;,
+            ],
             &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
               { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
                 &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
diff --git a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.sessions.html b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.sessions.html
index 0181a09..ecb7283 100644
--- a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.sessions.html
+++ b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.sessions.html
@@ -155,6 +155,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1031,6 +1032,7 @@
     },
     &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
       &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+      &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
       &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
       &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
         &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1884,6 +1886,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.flows.html b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.flows.html
index 72d23b2..f1962e4 100644
--- a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.flows.html
+++ b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.flows.html
@@ -259,6 +259,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -512,6 +515,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -791,6 +797,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1092,6 +1101,9 @@
         &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
         &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
       },
+      &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+        &quot;A String&quot;,
+      ],
       &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
         { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
           &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1363,6 +1375,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1617,6 +1632,9 @@
     &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
     &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
   },
+  &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+    &quot;A String&quot;,
+  ],
   &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
     { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
       &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
diff --git a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.sessions.html b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.sessions.html
index f178675..38c71e2 100644
--- a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.sessions.html
+++ b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.sessions.html
@@ -155,6 +155,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1031,6 +1032,7 @@
     },
     &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
       &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+      &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
       &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
       &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
         &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -1884,6 +1886,7 @@
   },
   &quot;queryParams&quot;: { # Represents the parameters of a conversational query. # The parameters of this query.
     &quot;analyzeQueryTextSentiment&quot;: True or False, # Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.
+    &quot;currentPage&quot;: &quot;A String&quot;, # The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.
     &quot;disableWebhook&quot;: True or False, # Whether to disable webhook calls for this request.
     &quot;geoLocation&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
       &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.testCases.html b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.testCases.html
index 0a9827b..cbba43a 100644
--- a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.testCases.html
+++ b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.testCases.html
@@ -714,6 +714,9 @@
               &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
               &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
             },
+            &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+              &quot;A String&quot;,
+            ],
             &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
               { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
                 &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
@@ -1545,6 +1548,9 @@
               &quot;modelTrainingMode&quot;: &quot;A String&quot;, # Indicates NLU model training mode.
               &quot;modelType&quot;: &quot;A String&quot;, # Indicates the type of NLU model.
             },
+            &quot;transitionRouteGroups&quot;: [ # A flow&#x27;s transition route group serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format:`projects//locations//agents//flows//transitionRouteGroups/`.
+              &quot;A String&quot;,
+            ],
             &quot;transitionRoutes&quot;: [ # A flow&#x27;s transition routes serve two purposes: * They are responsible for matching the user&#x27;s first utterances in the flow. * They are inherited by every page&#x27;s transition routes and can support use cases such as the user saying &quot;help&quot; or &quot;can I talk to a human?&quot;, which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.
               { # A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.
                 &quot;condition&quot;: &quot;A String&quot;, # The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.
diff --git a/docs/dyn/discovery_v1.apis.html b/docs/dyn/discovery_v1.apis.html
index 71ffabb..093b67e 100644
--- a/docs/dyn/discovery_v1.apis.html
+++ b/docs/dyn/discovery_v1.apis.html
@@ -135,6 +135,7 @@
     &quot;a_key&quot;: { # An individual method description.
       &quot;description&quot;: &quot;A String&quot;, # Description of this method.
       &quot;etagRequired&quot;: True or False, # Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.
+      &quot;flatPath&quot;: &quot;A String&quot;, # The URI path of this REST method in (RFC 6570) format without level 2 features ({+var}). Supplementary to the path property.
       &quot;httpMethod&quot;: &quot;A String&quot;, # HTTP method used by this method.
       &quot;id&quot;: &quot;A String&quot;, # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
       &quot;mediaUpload&quot;: { # Media upload parameters.
@@ -268,6 +269,7 @@
         &quot;a_key&quot;: { # Description for any methods on this resource.
           &quot;description&quot;: &quot;A String&quot;, # Description of this method.
           &quot;etagRequired&quot;: True or False, # Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.
+          &quot;flatPath&quot;: &quot;A String&quot;, # The URI path of this REST method in (RFC 6570) format without level 2 features ({+var}). Supplementary to the path property.
           &quot;httpMethod&quot;: &quot;A String&quot;, # HTTP method used by this method.
           &quot;id&quot;: &quot;A String&quot;, # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
           &quot;mediaUpload&quot;: { # Media upload parameters.
diff --git a/docs/dyn/displayvideo_v1.advertisers.lineItems.html b/docs/dyn/displayvideo_v1.advertisers.lineItems.html
index 082121f..85c6f3b 100644
--- a/docs/dyn/displayvideo_v1.advertisers.lineItems.html
+++ b/docs/dyn/displayvideo_v1.advertisers.lineItems.html
@@ -99,7 +99,7 @@
 <p class="firstline">Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.</p>
 <p class="toc_element">
   <code><a href="#generateDefault">generateDefault(advertiserId, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Creates a new line item with settings (including targeting) inherited from the insertion order. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's InsertionOrderType * The insertion order's InsertionOrderAutomationType * The given line_item_type</p>
+<p class="firstline">Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type</p>
 <p class="toc_element">
   <code><a href="#get">get(advertiserId, lineItemId, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets a line item.</p>
@@ -1239,7 +1239,7 @@
 
 <div class="method">
     <code class="details" id="generateDefault">generateDefault(advertiserId, body=None, x__xgafv=None)</code>
-  <pre>Creates a new line item with settings (including targeting) inherited from the insertion order. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order&#x27;s InsertionOrderType * The insertion order&#x27;s InsertionOrderAutomationType * The given line_item_type
+  <pre>Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order&#x27;s insertion_order_type * The insertion order&#x27;s automation_type * The given line_item_type
 
 Args:
   advertiserId: string, Required. The ID of the advertiser this line item belongs to. (required)
diff --git a/docs/dyn/displayvideo_v1.advertisers.negativeKeywordLists.negativeKeywords.html b/docs/dyn/displayvideo_v1.advertisers.negativeKeywordLists.negativeKeywords.html
index 3591921..110d1c7 100644
--- a/docs/dyn/displayvideo_v1.advertisers.negativeKeywordLists.negativeKeywords.html
+++ b/docs/dyn/displayvideo_v1.advertisers.negativeKeywordLists.negativeKeywords.html
@@ -94,7 +94,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#replace">replace(advertiserId, negativeKeywordListId, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keywords with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.</p>
+<p class="firstline">Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keyword list with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="bulkEdit">bulkEdit(advertiserId, negativeKeywordListId, body=None, x__xgafv=None)</code>
@@ -236,7 +236,7 @@
 
 <div class="method">
     <code class="details" id="replace">replace(advertiserId, negativeKeywordListId, body=None, x__xgafv=None)</code>
-  <pre>Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keywords with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.
+  <pre>Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keyword list with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.
 
 Args:
   advertiserId: string, Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs. (required)
diff --git a/docs/dyn/dlp_v2.organizations.deidentifyTemplates.html b/docs/dyn/dlp_v2.organizations.deidentifyTemplates.html
index 6fed223..e1ea0b0 100644
--- a/docs/dyn/dlp_v2.organizations.deidentifyTemplates.html
+++ b/docs/dyn/dlp_v2.organizations.deidentifyTemplates.html
@@ -201,7 +201,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -475,7 +475,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -699,7 +699,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -996,7 +996,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1270,7 +1270,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1494,7 +1494,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1813,7 +1813,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2087,7 +2087,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2311,7 +2311,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2618,7 +2618,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2892,7 +2892,7 @@
                         &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                           &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                         },
-                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                           &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                             &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                             &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3116,7 +3116,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3430,7 +3430,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3704,7 +3704,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3928,7 +3928,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4224,7 +4224,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4498,7 +4498,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4722,7 +4722,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
diff --git a/docs/dyn/dlp_v2.organizations.locations.deidentifyTemplates.html b/docs/dyn/dlp_v2.organizations.locations.deidentifyTemplates.html
index 32355bc..b56c99e 100644
--- a/docs/dyn/dlp_v2.organizations.locations.deidentifyTemplates.html
+++ b/docs/dyn/dlp_v2.organizations.locations.deidentifyTemplates.html
@@ -201,7 +201,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -475,7 +475,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -699,7 +699,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -996,7 +996,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1270,7 +1270,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1494,7 +1494,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1813,7 +1813,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2087,7 +2087,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2311,7 +2311,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2618,7 +2618,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2892,7 +2892,7 @@
                         &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                           &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                         },
-                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                           &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                             &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                             &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3116,7 +3116,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3430,7 +3430,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3704,7 +3704,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3928,7 +3928,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4224,7 +4224,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4498,7 +4498,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4722,7 +4722,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
diff --git a/docs/dyn/dlp_v2.projects.content.html b/docs/dyn/dlp_v2.projects.content.html
index 517c5de..2589b65 100644
--- a/docs/dyn/dlp_v2.projects.content.html
+++ b/docs/dyn/dlp_v2.projects.content.html
@@ -190,7 +190,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -464,7 +464,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -688,7 +688,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1235,7 +1235,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1459,7 +1459,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1728,7 +1728,7 @@
             &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
-            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
               &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2466,7 +2466,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2740,7 +2740,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2964,7 +2964,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3339,7 +3339,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3563,7 +3563,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3832,7 +3832,7 @@
             &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
-            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
               &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
diff --git a/docs/dyn/dlp_v2.projects.deidentifyTemplates.html b/docs/dyn/dlp_v2.projects.deidentifyTemplates.html
index 55cb45d..8d4a938 100644
--- a/docs/dyn/dlp_v2.projects.deidentifyTemplates.html
+++ b/docs/dyn/dlp_v2.projects.deidentifyTemplates.html
@@ -201,7 +201,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -475,7 +475,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -699,7 +699,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -996,7 +996,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1270,7 +1270,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1494,7 +1494,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1813,7 +1813,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2087,7 +2087,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2311,7 +2311,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2618,7 +2618,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2892,7 +2892,7 @@
                         &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                           &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                         },
-                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                           &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                             &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                             &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3116,7 +3116,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3430,7 +3430,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3704,7 +3704,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3928,7 +3928,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4224,7 +4224,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4498,7 +4498,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4722,7 +4722,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
diff --git a/docs/dyn/dlp_v2.projects.locations.content.html b/docs/dyn/dlp_v2.projects.locations.content.html
index 048634b..63f23e9 100644
--- a/docs/dyn/dlp_v2.projects.locations.content.html
+++ b/docs/dyn/dlp_v2.projects.locations.content.html
@@ -190,7 +190,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -464,7 +464,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -688,7 +688,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1235,7 +1235,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1459,7 +1459,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1728,7 +1728,7 @@
             &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
-            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
               &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2466,7 +2466,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2740,7 +2740,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2964,7 +2964,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3339,7 +3339,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3563,7 +3563,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3832,7 +3832,7 @@
             &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
               &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
             },
-            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+            &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
               &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                 &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                 &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
diff --git a/docs/dyn/dlp_v2.projects.locations.deidentifyTemplates.html b/docs/dyn/dlp_v2.projects.locations.deidentifyTemplates.html
index 73b64a8..2667dc1 100644
--- a/docs/dyn/dlp_v2.projects.locations.deidentifyTemplates.html
+++ b/docs/dyn/dlp_v2.projects.locations.deidentifyTemplates.html
@@ -201,7 +201,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -475,7 +475,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -699,7 +699,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -996,7 +996,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1270,7 +1270,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1494,7 +1494,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -1813,7 +1813,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2087,7 +2087,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2311,7 +2311,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2618,7 +2618,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -2892,7 +2892,7 @@
                         &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                           &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                         },
-                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                        &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                           &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                             &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                             &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3116,7 +3116,7 @@
                   &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                     &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                   },
-                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                  &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                     &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                       &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                       &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3430,7 +3430,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3704,7 +3704,7 @@
                       &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                         &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                       },
-                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                      &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                         &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                           &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                           &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -3928,7 +3928,7 @@
                 &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                   &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                 },
-                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                   &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                     &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                     &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4224,7 +4224,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4498,7 +4498,7 @@
                     &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                       &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
                     },
-                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+                    &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                       &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                         &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                         &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
@@ -4722,7 +4722,7 @@
               &quot;context&quot;: { # General identifier of a data field in a storage service. # A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s.
                 &quot;name&quot;: &quot;A String&quot;, # Name describing the field.
               },
-              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function.
+              &quot;cryptoKey&quot;: { # This is a data encryption key (DEK) (as opposed to a key encryption key (KEK) stored by KMS). When using KMS to wrap/unwrap DEKs, be sure to set an appropriate IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot unwrap the data crypto key. # The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.
                 &quot;kmsWrapped&quot;: { # Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128/192/256 bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a kms-wrapped crypto key: dlp.kms.encrypt # Kms wrapped key
                   &quot;cryptoKeyName&quot;: &quot;A String&quot;, # Required. The resource name of the KMS CryptoKey to use for unwrapping.
                   &quot;wrappedKey&quot;: &quot;A String&quot;, # Required. The wrapped data crypto key.
diff --git a/docs/dyn/documentai_v1.html b/docs/dyn/documentai_v1.html
new file mode 100644
index 0000000..b53d986
--- /dev/null
+++ b/docs/dyn/documentai_v1.html
@@ -0,0 +1,121 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="documentai_v1.uiv1beta3.html">uiv1beta3()</a></code>
+</p>
+<p class="firstline">Returns the uiv1beta3 Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.operations.html b/docs/dyn/documentai_v1.operations.html
new file mode 100644
index 0000000..7ddeffe
--- /dev/null
+++ b/docs/dyn/documentai_v1.operations.html
@@ -0,0 +1,197 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.html b/docs/dyn/documentai_v1.projects.html
new file mode 100644
index 0000000..3f08d91
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.locations.html b/docs/dyn/documentai_v1.projects.locations.html
new file mode 100644
index 0000000..6dd787e
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.locations.html
@@ -0,0 +1,181 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a> . <a href="documentai_v1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.locations.processors.html">processors()</a></code>
+</p>
+<p class="firstline">Returns the processors Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.locations.operations.html b/docs/dyn/documentai_v1.projects.locations.operations.html
new file mode 100644
index 0000000..fc847cd
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.locations.operations.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a> . <a href="documentai_v1.projects.locations.html">locations</a> . <a href="documentai_v1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.locations.processors.html b/docs/dyn/documentai_v1.projects.locations.processors.html
new file mode 100644
index 0000000..ebe79f8
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.locations.processors.html
@@ -0,0 +1,1568 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a> . <a href="documentai_v1.projects.locations.html">locations</a> . <a href="documentai_v1.projects.locations.processors.html">processors</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.locations.processors.humanReviewConfig.html">humanReviewConfig()</a></code>
+</p>
+<p class="firstline">Returns the humanReviewConfig Resource.</p>
+
+<p class="toc_element">
+  <code><a href="documentai_v1.projects.locations.processors.processorVersions.html">processorVersions()</a></code>
+</p>
+<p class="firstline">Returns the processorVersions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#batchProcess">batchProcess(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#process">process(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Processes a single document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchProcess">batchProcess(name, body=None, x__xgafv=None)</code>
+  <pre>LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.
+
+Args:
+  name: string, Required. The resource name of Processor or ProcessorVersion. Format: projects/{project}/locations/{location}/processors/{processor}, or projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for batch process document method.
+  &quot;documentOutputConfig&quot;: { # Config that controls the output of documents. All documents will be written as a JSON file. # The overall output config for batch process.
+    &quot;gcsOutputConfig&quot;: { # The configuration used when outputting documents. # Output config to write the results to Cloud Storage.
+      &quot;gcsUri&quot;: &quot;A String&quot;, # The Cloud Storage uri (a directory) of the output.
+    },
+  },
+  &quot;inputDocuments&quot;: { # The common config to specify a set of documents used as input. # The input documents for batch process.
+    &quot;gcsDocuments&quot;: { # Specifies a set of documents on Cloud Storage. # The set of documents individually specified on Cloud Storage.
+      &quot;documents&quot;: [ # The list of documents.
+        { # Specifies a document stored on Cloud Storage.
+          &quot;gcsUri&quot;: &quot;A String&quot;, # The Cloud Storage object uri.
+          &quot;mimeType&quot;: &quot;A String&quot;, # An IANA MIME type (RFC6838) of the content.
+        },
+      ],
+    },
+    &quot;gcsPrefix&quot;: { # Specifies all documents on Cloud Storage with a common prefix. # The set of documents that match the specified Cloud Storage [gcs_prefix].
+      &quot;gcsUriPrefix&quot;: &quot;A String&quot;, # The URI prefix.
+    },
+  },
+  &quot;skipHumanReview&quot;: True or False, # Whether Human Review feature should be skipped for this request. Default to false.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="process">process(name, body=None, x__xgafv=None)</code>
+  <pre>Processes a single document.
+
+Args:
+  name: string, Required. The resource name of the Processor or ProcessorVersion to use for processing. If a Processor is specified, the server will use its default version. Format: projects/{project}/locations/{location}/processors/{processor}, or projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the process document method.
+  &quot;inlineDocument&quot;: { # Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality. # An inline document proto.
+    &quot;content&quot;: &quot;A String&quot;, # Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.
+    &quot;entities&quot;: [ # A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.
+      { # A phrase in the text that is a known entity type, such as a person, an organization, or location.
+        &quot;confidence&quot;: 3.14, # Optional. Confidence of detected Schema entity. Range [0, 1].
+        &quot;id&quot;: &quot;A String&quot;, # Optional. Canonical id. This will be a unique value in the entity list for this document.
+        &quot;mentionId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use `id` field instead.
+        &quot;mentionText&quot;: &quot;A String&quot;, # Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`.
+        &quot;normalizedValue&quot;: { # Parsed and normalized entity value. # Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types.
+          &quot;addressValue&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
+            &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+              &quot;A String&quot;,
+            ],
+            &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+            &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+            &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+            &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+            &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+              &quot;A String&quot;,
+            ],
+            &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+            &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+            &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+            &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+          },
+          &quot;booleanValue&quot;: True or False, # Boolean value. Can be used for entities with binary values, or for checkboxes.
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
+            &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+            &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+            &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+          },
+          &quot;datetimeValue&quot;: { # Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user&#x27;s timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application&#x27;s limitations. # DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
+            &quot;day&quot;: 42, # Required. Day of month. Must be from 1 to 31 and valid for the year and month.
+            &quot;hours&quot;: 42, # Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+            &quot;minutes&quot;: 42, # Required. Minutes of hour of day. Must be from 0 to 59.
+            &quot;month&quot;: 42, # Required. Month of year. Must be from 1 to 12.
+            &quot;nanos&quot;: 42, # Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;seconds&quot;: 42, # Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+            &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # Time zone.
+              &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
+              &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
+            },
+            &quot;utcOffset&quot;: &quot;A String&quot;, # UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
+            &quot;year&quot;: 42, # Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
+          },
+          &quot;moneyValue&quot;: { # Represents an amount of money with its currency type. # Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+          &quot;text&quot;: &quot;A String&quot;, # Required. Normalized entity value stored as a string. This field is populated for supported document type (e.g. Invoice). For some entity types, one of respective &#x27;structured_value&#x27; fields may also be populated. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.
+        },
+        &quot;pageAnchor&quot;: { # Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types. # Optional. Represents the provenance of this entity wrt. the location on the page where it was found.
+          &quot;pageRefs&quot;: [ # One or more references to visual page elements
+            { # Represents a weak reference to a page element within a document.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # Optional. Identifies the bounding polygon of a layout element on the page.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;layoutId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use PageRef.bounding_poly instead.
+              &quot;layoutType&quot;: &quot;A String&quot;, # Optional. The type of the layout element that is being referenced if any.
+              &quot;page&quot;: &quot;A String&quot;, # Required. Index into the Document.pages element, for example using Document.pages to locate the related page element.
+            },
+          ],
+        },
+        &quot;properties&quot;: [ # Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.
+          # Object with schema name: GoogleCloudDocumentaiV1DocumentEntity
+        ],
+        &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # Optional. The history of this annotation.
+          &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+          &quot;parents&quot;: [ # References to the original elements that are replaced.
+            { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+              &quot;id&quot;: 42, # The id of the parent provenance.
+              &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+            },
+          ],
+          &quot;revision&quot;: 42, # The index of the revision that produced this element.
+          &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+        },
+        &quot;redacted&quot;: True or False, # Optional. Whether the entity will be redacted for de-identification purposes.
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Optional. Provenance of the entity. Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;type&quot;: &quot;A String&quot;, # Entity type from a schema e.g. `Address`.
+      },
+    ],
+    &quot;entityRelations&quot;: [ # Relationship among Document.entities.
+      { # Relationship between Entities.
+        &quot;objectId&quot;: &quot;A String&quot;, # Object entity id.
+        &quot;relation&quot;: &quot;A String&quot;, # Relationship description.
+        &quot;subjectId&quot;: &quot;A String&quot;, # Subject entity id.
+      },
+    ],
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Any error that occurred while processing this document.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.
+    &quot;pages&quot;: [ # Visual page layout for the Document.
+      { # A page in a Document.
+        &quot;blocks&quot;: [ # A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+          { # A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Block.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+          { # Detected language for a structural component.
+            &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+            &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+          },
+        ],
+        &quot;dimension&quot;: { # Dimension for the page. # Physical dimension of the page.
+          &quot;height&quot;: 3.14, # Page height.
+          &quot;unit&quot;: &quot;A String&quot;, # Dimension unit.
+          &quot;width&quot;: 3.14, # Page width.
+        },
+        &quot;formFields&quot;: [ # A list of visually detected form fields on the page.
+          { # A form field detected on the page.
+            &quot;fieldName&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;fieldValue&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField value.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;nameDetectedLanguages&quot;: [ # A list of detected languages for name together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueDetectedLanguages&quot;: [ # A list of detected languages for value together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueType&quot;: &quot;A String&quot;, # If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - &quot;unfilled_checkbox&quot; - &quot;filled_checkbox&quot;
+          },
+        ],
+        &quot;image&quot;: { # Rendered image contents for this page. # Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned.
+          &quot;content&quot;: &quot;A String&quot;, # Raw byte content of the image.
+          &quot;height&quot;: 42, # Height of the image in pixels.
+          &quot;mimeType&quot;: &quot;A String&quot;, # Encoding mime type for the image.
+          &quot;width&quot;: 42, # Width of the image in pixels.
+        },
+        &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for the page.
+          &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+            &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+              { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                &quot;x&quot;: 3.14, # X coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+              },
+            ],
+            &quot;vertices&quot;: [ # 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.
+                &quot;x&quot;: 42, # X coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+              },
+            ],
+          },
+          &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+          &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+          &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+            &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+            &quot;textSegments&quot;: [ # The text segments from the Document.text.
+              { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+              },
+            ],
+          },
+        },
+        &quot;lines&quot;: [ # A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.
+          { # A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Line.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;pageNumber&quot;: 42, # 1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.
+        &quot;paragraphs&quot;: [ # A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.
+          { # A collection of lines that a human would perceive as a paragraph.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Paragraph.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;tables&quot;: [ # A list of visually detected tables on the page.
+          { # A table representation similar to HTML table structure.
+            &quot;bodyRows&quot;: [ # Body rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;headerRows&quot;: [ # Header rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Table.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+          },
+        ],
+        &quot;tokens&quot;: [ # A list of visually detected tokens on the page.
+          { # A detected token.
+            &quot;detectedBreak&quot;: { # Detected break at the end of a Token. # Detected break at the end of a Token.
+              &quot;type&quot;: &quot;A String&quot;, # Detected break type.
+            },
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Token.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;transforms&quot;: [ # Transformation matrices that were applied to the original document image to produce Page.image.
+          { # Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.
+            &quot;cols&quot;: 42, # Number of columns in the matrix.
+            &quot;data&quot;: &quot;A String&quot;, # The matrix data.
+            &quot;rows&quot;: 42, # Number of rows in the matrix.
+            &quot;type&quot;: 42, # This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
+          },
+        ],
+        &quot;visualElements&quot;: [ # A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.
+          { # Detected non-text visual elements e.g. checkbox, signature etc. on the page.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for VisualElement.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;type&quot;: &quot;A String&quot;, # Type of the VisualElement.
+          },
+        ],
+      },
+    ],
+    &quot;revisions&quot;: [ # Revision history of this document.
+      { # Contains past or forward revisions of this document.
+        &quot;agent&quot;: &quot;A String&quot;, # If the change was made by a person specify the name or id of that person.
+        &quot;createTime&quot;: &quot;A String&quot;, # The time that the revision was created.
+        &quot;humanReview&quot;: { # Human Review information of the document. # Human Review information of this revision.
+          &quot;state&quot;: &quot;A String&quot;, # Human review state. e.g. `requested`, `succeeded`, `rejected`.
+          &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.
+        },
+        &quot;id&quot;: &quot;A String&quot;, # Id of the revision. Unique within the context of the document.
+        &quot;parent&quot;: [ # The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.
+          42,
+        ],
+        &quot;processor&quot;: &quot;A String&quot;, # If the annotation was made by processor identify the processor by its resource name.
+      },
+    ],
+    &quot;shardInfo&quot;: { # For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is. # Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified.
+      &quot;shardCount&quot;: &quot;A String&quot;, # Total number of shards.
+      &quot;shardIndex&quot;: &quot;A String&quot;, # The 0-based index of this shard.
+      &quot;textOffset&quot;: &quot;A String&quot;, # The index of the first character in Document.text in the overall document global text.
+    },
+    &quot;text&quot;: &quot;A String&quot;, # Optional. UTF-8 encoded text in reading order from the document.
+    &quot;textChanges&quot;: [ # A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.
+      { # This message is used for text changes aka. OCR corrections.
+        &quot;changedText&quot;: &quot;A String&quot;, # The text that replaces the text identified in the `text_anchor`.
+        &quot;provenance&quot;: [ # The history of this annotation.
+          { # Structure to identify provenance relationships between annotations in different revisions.
+            &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+            &quot;parents&quot;: [ # References to the original elements that are replaced.
+              { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                &quot;id&quot;: 42, # The id of the parent provenance.
+                &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+              },
+            ],
+            &quot;revision&quot;: 42, # The index of the revision that produced this element.
+            &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+          },
+        ],
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+      },
+    ],
+    &quot;textStyles&quot;: [ # Styles for the Document.text.
+      { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;fontSize&quot;: { # Font size with unit. # Font size.
+          &quot;size&quot;: 3.14, # Font size for the text.
+          &quot;unit&quot;: &quot;A String&quot;, # Unit for the font size. Follows CSS naming (in, px, pt, etc.).
+        },
+        &quot;fontWeight&quot;: &quot;A String&quot;, # Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;textDecoration&quot;: &quot;A String&quot;, # Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp
+        &quot;textStyle&quot;: &quot;A String&quot;, # Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp
+      },
+    ],
+    &quot;uri&quot;: &quot;A String&quot;, # Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
+  },
+  &quot;rawDocument&quot;: { # Payload message of raw document content (bytes). # A raw document content (bytes).
+    &quot;content&quot;: &quot;A String&quot;, # Inline document content.
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA MIME type (RFC6838) indicating the nature and format of the [content].
+  },
+  &quot;skipHumanReview&quot;: True or False, # Whether Human Review feature should be skipped for this request. Default to false.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the process document method.
+  &quot;document&quot;: { # Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality. # The document payload, will populate fields based on the processor&#x27;s behavior.
+    &quot;content&quot;: &quot;A String&quot;, # Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.
+    &quot;entities&quot;: [ # A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.
+      { # A phrase in the text that is a known entity type, such as a person, an organization, or location.
+        &quot;confidence&quot;: 3.14, # Optional. Confidence of detected Schema entity. Range [0, 1].
+        &quot;id&quot;: &quot;A String&quot;, # Optional. Canonical id. This will be a unique value in the entity list for this document.
+        &quot;mentionId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use `id` field instead.
+        &quot;mentionText&quot;: &quot;A String&quot;, # Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`.
+        &quot;normalizedValue&quot;: { # Parsed and normalized entity value. # Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types.
+          &quot;addressValue&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
+            &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+              &quot;A String&quot;,
+            ],
+            &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+            &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+            &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+            &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+            &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+              &quot;A String&quot;,
+            ],
+            &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+            &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+            &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+            &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+          },
+          &quot;booleanValue&quot;: True or False, # Boolean value. Can be used for entities with binary values, or for checkboxes.
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
+            &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+            &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+            &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+          },
+          &quot;datetimeValue&quot;: { # Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user&#x27;s timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application&#x27;s limitations. # DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
+            &quot;day&quot;: 42, # Required. Day of month. Must be from 1 to 31 and valid for the year and month.
+            &quot;hours&quot;: 42, # Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+            &quot;minutes&quot;: 42, # Required. Minutes of hour of day. Must be from 0 to 59.
+            &quot;month&quot;: 42, # Required. Month of year. Must be from 1 to 12.
+            &quot;nanos&quot;: 42, # Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;seconds&quot;: 42, # Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+            &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # Time zone.
+              &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
+              &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
+            },
+            &quot;utcOffset&quot;: &quot;A String&quot;, # UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
+            &quot;year&quot;: 42, # Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
+          },
+          &quot;moneyValue&quot;: { # Represents an amount of money with its currency type. # Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+          &quot;text&quot;: &quot;A String&quot;, # Required. Normalized entity value stored as a string. This field is populated for supported document type (e.g. Invoice). For some entity types, one of respective &#x27;structured_value&#x27; fields may also be populated. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.
+        },
+        &quot;pageAnchor&quot;: { # Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types. # Optional. Represents the provenance of this entity wrt. the location on the page where it was found.
+          &quot;pageRefs&quot;: [ # One or more references to visual page elements
+            { # Represents a weak reference to a page element within a document.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # Optional. Identifies the bounding polygon of a layout element on the page.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;layoutId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use PageRef.bounding_poly instead.
+              &quot;layoutType&quot;: &quot;A String&quot;, # Optional. The type of the layout element that is being referenced if any.
+              &quot;page&quot;: &quot;A String&quot;, # Required. Index into the Document.pages element, for example using Document.pages to locate the related page element.
+            },
+          ],
+        },
+        &quot;properties&quot;: [ # Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.
+          # Object with schema name: GoogleCloudDocumentaiV1DocumentEntity
+        ],
+        &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # Optional. The history of this annotation.
+          &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+          &quot;parents&quot;: [ # References to the original elements that are replaced.
+            { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+              &quot;id&quot;: 42, # The id of the parent provenance.
+              &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+            },
+          ],
+          &quot;revision&quot;: 42, # The index of the revision that produced this element.
+          &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+        },
+        &quot;redacted&quot;: True or False, # Optional. Whether the entity will be redacted for de-identification purposes.
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Optional. Provenance of the entity. Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;type&quot;: &quot;A String&quot;, # Entity type from a schema e.g. `Address`.
+      },
+    ],
+    &quot;entityRelations&quot;: [ # Relationship among Document.entities.
+      { # Relationship between Entities.
+        &quot;objectId&quot;: &quot;A String&quot;, # Object entity id.
+        &quot;relation&quot;: &quot;A String&quot;, # Relationship description.
+        &quot;subjectId&quot;: &quot;A String&quot;, # Subject entity id.
+      },
+    ],
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Any error that occurred while processing this document.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.
+    &quot;pages&quot;: [ # Visual page layout for the Document.
+      { # A page in a Document.
+        &quot;blocks&quot;: [ # A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+          { # A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Block.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+          { # Detected language for a structural component.
+            &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+            &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+          },
+        ],
+        &quot;dimension&quot;: { # Dimension for the page. # Physical dimension of the page.
+          &quot;height&quot;: 3.14, # Page height.
+          &quot;unit&quot;: &quot;A String&quot;, # Dimension unit.
+          &quot;width&quot;: 3.14, # Page width.
+        },
+        &quot;formFields&quot;: [ # A list of visually detected form fields on the page.
+          { # A form field detected on the page.
+            &quot;fieldName&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;fieldValue&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField value.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;nameDetectedLanguages&quot;: [ # A list of detected languages for name together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueDetectedLanguages&quot;: [ # A list of detected languages for value together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueType&quot;: &quot;A String&quot;, # If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - &quot;unfilled_checkbox&quot; - &quot;filled_checkbox&quot;
+          },
+        ],
+        &quot;image&quot;: { # Rendered image contents for this page. # Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned.
+          &quot;content&quot;: &quot;A String&quot;, # Raw byte content of the image.
+          &quot;height&quot;: 42, # Height of the image in pixels.
+          &quot;mimeType&quot;: &quot;A String&quot;, # Encoding mime type for the image.
+          &quot;width&quot;: 42, # Width of the image in pixels.
+        },
+        &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for the page.
+          &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+            &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+              { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                &quot;x&quot;: 3.14, # X coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+              },
+            ],
+            &quot;vertices&quot;: [ # 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.
+                &quot;x&quot;: 42, # X coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+              },
+            ],
+          },
+          &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+          &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+          &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+            &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+            &quot;textSegments&quot;: [ # The text segments from the Document.text.
+              { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+              },
+            ],
+          },
+        },
+        &quot;lines&quot;: [ # A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.
+          { # A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Line.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;pageNumber&quot;: 42, # 1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.
+        &quot;paragraphs&quot;: [ # A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.
+          { # A collection of lines that a human would perceive as a paragraph.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Paragraph.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;tables&quot;: [ # A list of visually detected tables on the page.
+          { # A table representation similar to HTML table structure.
+            &quot;bodyRows&quot;: [ # Body rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;headerRows&quot;: [ # Header rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Table.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+          },
+        ],
+        &quot;tokens&quot;: [ # A list of visually detected tokens on the page.
+          { # A detected token.
+            &quot;detectedBreak&quot;: { # Detected break at the end of a Token. # Detected break at the end of a Token.
+              &quot;type&quot;: &quot;A String&quot;, # Detected break type.
+            },
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Token.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;transforms&quot;: [ # Transformation matrices that were applied to the original document image to produce Page.image.
+          { # Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.
+            &quot;cols&quot;: 42, # Number of columns in the matrix.
+            &quot;data&quot;: &quot;A String&quot;, # The matrix data.
+            &quot;rows&quot;: 42, # Number of rows in the matrix.
+            &quot;type&quot;: 42, # This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
+          },
+        ],
+        &quot;visualElements&quot;: [ # A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.
+          { # Detected non-text visual elements e.g. checkbox, signature etc. on the page.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for VisualElement.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;type&quot;: &quot;A String&quot;, # Type of the VisualElement.
+          },
+        ],
+      },
+    ],
+    &quot;revisions&quot;: [ # Revision history of this document.
+      { # Contains past or forward revisions of this document.
+        &quot;agent&quot;: &quot;A String&quot;, # If the change was made by a person specify the name or id of that person.
+        &quot;createTime&quot;: &quot;A String&quot;, # The time that the revision was created.
+        &quot;humanReview&quot;: { # Human Review information of the document. # Human Review information of this revision.
+          &quot;state&quot;: &quot;A String&quot;, # Human review state. e.g. `requested`, `succeeded`, `rejected`.
+          &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.
+        },
+        &quot;id&quot;: &quot;A String&quot;, # Id of the revision. Unique within the context of the document.
+        &quot;parent&quot;: [ # The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.
+          42,
+        ],
+        &quot;processor&quot;: &quot;A String&quot;, # If the annotation was made by processor identify the processor by its resource name.
+      },
+    ],
+    &quot;shardInfo&quot;: { # For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is. # Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified.
+      &quot;shardCount&quot;: &quot;A String&quot;, # Total number of shards.
+      &quot;shardIndex&quot;: &quot;A String&quot;, # The 0-based index of this shard.
+      &quot;textOffset&quot;: &quot;A String&quot;, # The index of the first character in Document.text in the overall document global text.
+    },
+    &quot;text&quot;: &quot;A String&quot;, # Optional. UTF-8 encoded text in reading order from the document.
+    &quot;textChanges&quot;: [ # A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.
+      { # This message is used for text changes aka. OCR corrections.
+        &quot;changedText&quot;: &quot;A String&quot;, # The text that replaces the text identified in the `text_anchor`.
+        &quot;provenance&quot;: [ # The history of this annotation.
+          { # Structure to identify provenance relationships between annotations in different revisions.
+            &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+            &quot;parents&quot;: [ # References to the original elements that are replaced.
+              { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                &quot;id&quot;: 42, # The id of the parent provenance.
+                &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+              },
+            ],
+            &quot;revision&quot;: 42, # The index of the revision that produced this element.
+            &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+          },
+        ],
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+      },
+    ],
+    &quot;textStyles&quot;: [ # Styles for the Document.text.
+      { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;fontSize&quot;: { # Font size with unit. # Font size.
+          &quot;size&quot;: 3.14, # Font size for the text.
+          &quot;unit&quot;: &quot;A String&quot;, # Unit for the font size. Follows CSS naming (in, px, pt, etc.).
+        },
+        &quot;fontWeight&quot;: &quot;A String&quot;, # Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;textDecoration&quot;: &quot;A String&quot;, # Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp
+        &quot;textStyle&quot;: &quot;A String&quot;, # Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp
+      },
+    ],
+    &quot;uri&quot;: &quot;A String&quot;, # Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
+  },
+  &quot;humanReviewStatus&quot;: { # The status of human review on a processed document. # The status of human review on the processed document.
+    &quot;humanReviewOperation&quot;: &quot;A String&quot;, # The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.
+    &quot;state&quot;: &quot;A String&quot;, # The state of human review on the processing request.
+    &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the human review state.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.locations.processors.humanReviewConfig.html b/docs/dyn/documentai_v1.projects.locations.processors.humanReviewConfig.html
new file mode 100644
index 0000000..8c35219
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.locations.processors.humanReviewConfig.html
@@ -0,0 +1,816 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a> . <a href="documentai_v1.projects.locations.html">locations</a> . <a href="documentai_v1.projects.locations.processors.html">processors</a> . <a href="documentai_v1.projects.locations.processors.humanReviewConfig.html">humanReviewConfig</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#reviewDocument">reviewDocument(humanReviewConfig, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Send a document for Human Review. The input document should be processed by the specified processor.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="reviewDocument">reviewDocument(humanReviewConfig, body=None, x__xgafv=None)</code>
+  <pre>Send a document for Human Review. The input document should be processed by the specified processor.
+
+Args:
+  humanReviewConfig: string, Required. The resource name of the HumanReviewConfig that the document will be reviewed with. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for review document method.
+  &quot;inlineDocument&quot;: { # Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality. # An inline document proto.
+    &quot;content&quot;: &quot;A String&quot;, # Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.
+    &quot;entities&quot;: [ # A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.
+      { # A phrase in the text that is a known entity type, such as a person, an organization, or location.
+        &quot;confidence&quot;: 3.14, # Optional. Confidence of detected Schema entity. Range [0, 1].
+        &quot;id&quot;: &quot;A String&quot;, # Optional. Canonical id. This will be a unique value in the entity list for this document.
+        &quot;mentionId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use `id` field instead.
+        &quot;mentionText&quot;: &quot;A String&quot;, # Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`.
+        &quot;normalizedValue&quot;: { # Parsed and normalized entity value. # Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types.
+          &quot;addressValue&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
+            &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+              &quot;A String&quot;,
+            ],
+            &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+            &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+            &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+            &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+            &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+              &quot;A String&quot;,
+            ],
+            &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+            &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+            &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+            &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+          },
+          &quot;booleanValue&quot;: True or False, # Boolean value. Can be used for entities with binary values, or for checkboxes.
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
+            &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+            &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+            &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+          },
+          &quot;datetimeValue&quot;: { # Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user&#x27;s timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application&#x27;s limitations. # DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
+            &quot;day&quot;: 42, # Required. Day of month. Must be from 1 to 31 and valid for the year and month.
+            &quot;hours&quot;: 42, # Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+            &quot;minutes&quot;: 42, # Required. Minutes of hour of day. Must be from 0 to 59.
+            &quot;month&quot;: 42, # Required. Month of year. Must be from 1 to 12.
+            &quot;nanos&quot;: 42, # Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;seconds&quot;: 42, # Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+            &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # Time zone.
+              &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
+              &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
+            },
+            &quot;utcOffset&quot;: &quot;A String&quot;, # UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
+            &quot;year&quot;: 42, # Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
+          },
+          &quot;moneyValue&quot;: { # Represents an amount of money with its currency type. # Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+          &quot;text&quot;: &quot;A String&quot;, # Required. Normalized entity value stored as a string. This field is populated for supported document type (e.g. Invoice). For some entity types, one of respective &#x27;structured_value&#x27; fields may also be populated. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.
+        },
+        &quot;pageAnchor&quot;: { # Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types. # Optional. Represents the provenance of this entity wrt. the location on the page where it was found.
+          &quot;pageRefs&quot;: [ # One or more references to visual page elements
+            { # Represents a weak reference to a page element within a document.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # Optional. Identifies the bounding polygon of a layout element on the page.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;layoutId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use PageRef.bounding_poly instead.
+              &quot;layoutType&quot;: &quot;A String&quot;, # Optional. The type of the layout element that is being referenced if any.
+              &quot;page&quot;: &quot;A String&quot;, # Required. Index into the Document.pages element, for example using Document.pages to locate the related page element.
+            },
+          ],
+        },
+        &quot;properties&quot;: [ # Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.
+          # Object with schema name: GoogleCloudDocumentaiV1DocumentEntity
+        ],
+        &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # Optional. The history of this annotation.
+          &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+          &quot;parents&quot;: [ # References to the original elements that are replaced.
+            { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+              &quot;id&quot;: 42, # The id of the parent provenance.
+              &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+            },
+          ],
+          &quot;revision&quot;: 42, # The index of the revision that produced this element.
+          &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+        },
+        &quot;redacted&quot;: True or False, # Optional. Whether the entity will be redacted for de-identification purposes.
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Optional. Provenance of the entity. Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;type&quot;: &quot;A String&quot;, # Entity type from a schema e.g. `Address`.
+      },
+    ],
+    &quot;entityRelations&quot;: [ # Relationship among Document.entities.
+      { # Relationship between Entities.
+        &quot;objectId&quot;: &quot;A String&quot;, # Object entity id.
+        &quot;relation&quot;: &quot;A String&quot;, # Relationship description.
+        &quot;subjectId&quot;: &quot;A String&quot;, # Subject entity id.
+      },
+    ],
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Any error that occurred while processing this document.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.
+    &quot;pages&quot;: [ # Visual page layout for the Document.
+      { # A page in a Document.
+        &quot;blocks&quot;: [ # A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+          { # A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Block.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+          { # Detected language for a structural component.
+            &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+            &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+          },
+        ],
+        &quot;dimension&quot;: { # Dimension for the page. # Physical dimension of the page.
+          &quot;height&quot;: 3.14, # Page height.
+          &quot;unit&quot;: &quot;A String&quot;, # Dimension unit.
+          &quot;width&quot;: 3.14, # Page width.
+        },
+        &quot;formFields&quot;: [ # A list of visually detected form fields on the page.
+          { # A form field detected on the page.
+            &quot;fieldName&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;fieldValue&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField value.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;nameDetectedLanguages&quot;: [ # A list of detected languages for name together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueDetectedLanguages&quot;: [ # A list of detected languages for value together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueType&quot;: &quot;A String&quot;, # If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - &quot;unfilled_checkbox&quot; - &quot;filled_checkbox&quot;
+          },
+        ],
+        &quot;image&quot;: { # Rendered image contents for this page. # Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned.
+          &quot;content&quot;: &quot;A String&quot;, # Raw byte content of the image.
+          &quot;height&quot;: 42, # Height of the image in pixels.
+          &quot;mimeType&quot;: &quot;A String&quot;, # Encoding mime type for the image.
+          &quot;width&quot;: 42, # Width of the image in pixels.
+        },
+        &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for the page.
+          &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+            &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+              { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                &quot;x&quot;: 3.14, # X coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+              },
+            ],
+            &quot;vertices&quot;: [ # 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.
+                &quot;x&quot;: 42, # X coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+              },
+            ],
+          },
+          &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+          &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+          &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+            &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+            &quot;textSegments&quot;: [ # The text segments from the Document.text.
+              { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+              },
+            ],
+          },
+        },
+        &quot;lines&quot;: [ # A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.
+          { # A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Line.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;pageNumber&quot;: 42, # 1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.
+        &quot;paragraphs&quot;: [ # A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.
+          { # A collection of lines that a human would perceive as a paragraph.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Paragraph.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;tables&quot;: [ # A list of visually detected tables on the page.
+          { # A table representation similar to HTML table structure.
+            &quot;bodyRows&quot;: [ # Body rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;headerRows&quot;: [ # Header rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Table.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+          },
+        ],
+        &quot;tokens&quot;: [ # A list of visually detected tokens on the page.
+          { # A detected token.
+            &quot;detectedBreak&quot;: { # Detected break at the end of a Token. # Detected break at the end of a Token.
+              &quot;type&quot;: &quot;A String&quot;, # Detected break type.
+            },
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Token.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;transforms&quot;: [ # Transformation matrices that were applied to the original document image to produce Page.image.
+          { # Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.
+            &quot;cols&quot;: 42, # Number of columns in the matrix.
+            &quot;data&quot;: &quot;A String&quot;, # The matrix data.
+            &quot;rows&quot;: 42, # Number of rows in the matrix.
+            &quot;type&quot;: 42, # This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
+          },
+        ],
+        &quot;visualElements&quot;: [ # A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.
+          { # Detected non-text visual elements e.g. checkbox, signature etc. on the page.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for VisualElement.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;type&quot;: &quot;A String&quot;, # Type of the VisualElement.
+          },
+        ],
+      },
+    ],
+    &quot;revisions&quot;: [ # Revision history of this document.
+      { # Contains past or forward revisions of this document.
+        &quot;agent&quot;: &quot;A String&quot;, # If the change was made by a person specify the name or id of that person.
+        &quot;createTime&quot;: &quot;A String&quot;, # The time that the revision was created.
+        &quot;humanReview&quot;: { # Human Review information of the document. # Human Review information of this revision.
+          &quot;state&quot;: &quot;A String&quot;, # Human review state. e.g. `requested`, `succeeded`, `rejected`.
+          &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.
+        },
+        &quot;id&quot;: &quot;A String&quot;, # Id of the revision. Unique within the context of the document.
+        &quot;parent&quot;: [ # The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.
+          42,
+        ],
+        &quot;processor&quot;: &quot;A String&quot;, # If the annotation was made by processor identify the processor by its resource name.
+      },
+    ],
+    &quot;shardInfo&quot;: { # For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is. # Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified.
+      &quot;shardCount&quot;: &quot;A String&quot;, # Total number of shards.
+      &quot;shardIndex&quot;: &quot;A String&quot;, # The 0-based index of this shard.
+      &quot;textOffset&quot;: &quot;A String&quot;, # The index of the first character in Document.text in the overall document global text.
+    },
+    &quot;text&quot;: &quot;A String&quot;, # Optional. UTF-8 encoded text in reading order from the document.
+    &quot;textChanges&quot;: [ # A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.
+      { # This message is used for text changes aka. OCR corrections.
+        &quot;changedText&quot;: &quot;A String&quot;, # The text that replaces the text identified in the `text_anchor`.
+        &quot;provenance&quot;: [ # The history of this annotation.
+          { # Structure to identify provenance relationships between annotations in different revisions.
+            &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+            &quot;parents&quot;: [ # References to the original elements that are replaced.
+              { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                &quot;id&quot;: 42, # The id of the parent provenance.
+                &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+              },
+            ],
+            &quot;revision&quot;: 42, # The index of the revision that produced this element.
+            &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+          },
+        ],
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+      },
+    ],
+    &quot;textStyles&quot;: [ # Styles for the Document.text.
+      { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;fontSize&quot;: { # Font size with unit. # Font size.
+          &quot;size&quot;: 3.14, # Font size for the text.
+          &quot;unit&quot;: &quot;A String&quot;, # Unit for the font size. Follows CSS naming (in, px, pt, etc.).
+        },
+        &quot;fontWeight&quot;: &quot;A String&quot;, # Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;textDecoration&quot;: &quot;A String&quot;, # Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp
+        &quot;textStyle&quot;: &quot;A String&quot;, # Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp
+      },
+    ],
+    &quot;uri&quot;: &quot;A String&quot;, # Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.locations.processors.processorVersions.html b/docs/dyn/documentai_v1.projects.locations.processors.processorVersions.html
new file mode 100644
index 0000000..dc869cc
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.locations.processors.processorVersions.html
@@ -0,0 +1,1558 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a> . <a href="documentai_v1.projects.locations.html">locations</a> . <a href="documentai_v1.projects.locations.processors.html">processors</a> . <a href="documentai_v1.projects.locations.processors.processorVersions.html">processorVersions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#batchProcess">batchProcess(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#process">process(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Processes a single document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="batchProcess">batchProcess(name, body=None, x__xgafv=None)</code>
+  <pre>LRO endpoint to batch process many documents. The output is written to Cloud Storage as JSON in the [Document] format.
+
+Args:
+  name: string, Required. The resource name of Processor or ProcessorVersion. Format: projects/{project}/locations/{location}/processors/{processor}, or projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for batch process document method.
+  &quot;documentOutputConfig&quot;: { # Config that controls the output of documents. All documents will be written as a JSON file. # The overall output config for batch process.
+    &quot;gcsOutputConfig&quot;: { # The configuration used when outputting documents. # Output config to write the results to Cloud Storage.
+      &quot;gcsUri&quot;: &quot;A String&quot;, # The Cloud Storage uri (a directory) of the output.
+    },
+  },
+  &quot;inputDocuments&quot;: { # The common config to specify a set of documents used as input. # The input documents for batch process.
+    &quot;gcsDocuments&quot;: { # Specifies a set of documents on Cloud Storage. # The set of documents individually specified on Cloud Storage.
+      &quot;documents&quot;: [ # The list of documents.
+        { # Specifies a document stored on Cloud Storage.
+          &quot;gcsUri&quot;: &quot;A String&quot;, # The Cloud Storage object uri.
+          &quot;mimeType&quot;: &quot;A String&quot;, # An IANA MIME type (RFC6838) of the content.
+        },
+      ],
+    },
+    &quot;gcsPrefix&quot;: { # Specifies all documents on Cloud Storage with a common prefix. # The set of documents that match the specified Cloud Storage [gcs_prefix].
+      &quot;gcsUriPrefix&quot;: &quot;A String&quot;, # The URI prefix.
+    },
+  },
+  &quot;skipHumanReview&quot;: True or False, # Whether Human Review feature should be skipped for this request. Default to false.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="process">process(name, body=None, x__xgafv=None)</code>
+  <pre>Processes a single document.
+
+Args:
+  name: string, Required. The resource name of the Processor or ProcessorVersion to use for processing. If a Processor is specified, the server will use its default version. Format: projects/{project}/locations/{location}/processors/{processor}, or projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the process document method.
+  &quot;inlineDocument&quot;: { # Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality. # An inline document proto.
+    &quot;content&quot;: &quot;A String&quot;, # Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.
+    &quot;entities&quot;: [ # A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.
+      { # A phrase in the text that is a known entity type, such as a person, an organization, or location.
+        &quot;confidence&quot;: 3.14, # Optional. Confidence of detected Schema entity. Range [0, 1].
+        &quot;id&quot;: &quot;A String&quot;, # Optional. Canonical id. This will be a unique value in the entity list for this document.
+        &quot;mentionId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use `id` field instead.
+        &quot;mentionText&quot;: &quot;A String&quot;, # Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`.
+        &quot;normalizedValue&quot;: { # Parsed and normalized entity value. # Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types.
+          &quot;addressValue&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
+            &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+              &quot;A String&quot;,
+            ],
+            &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+            &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+            &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+            &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+            &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+              &quot;A String&quot;,
+            ],
+            &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+            &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+            &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+            &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+          },
+          &quot;booleanValue&quot;: True or False, # Boolean value. Can be used for entities with binary values, or for checkboxes.
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
+            &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+            &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+            &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+          },
+          &quot;datetimeValue&quot;: { # Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user&#x27;s timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application&#x27;s limitations. # DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
+            &quot;day&quot;: 42, # Required. Day of month. Must be from 1 to 31 and valid for the year and month.
+            &quot;hours&quot;: 42, # Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+            &quot;minutes&quot;: 42, # Required. Minutes of hour of day. Must be from 0 to 59.
+            &quot;month&quot;: 42, # Required. Month of year. Must be from 1 to 12.
+            &quot;nanos&quot;: 42, # Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;seconds&quot;: 42, # Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+            &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # Time zone.
+              &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
+              &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
+            },
+            &quot;utcOffset&quot;: &quot;A String&quot;, # UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
+            &quot;year&quot;: 42, # Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
+          },
+          &quot;moneyValue&quot;: { # Represents an amount of money with its currency type. # Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+          &quot;text&quot;: &quot;A String&quot;, # Required. Normalized entity value stored as a string. This field is populated for supported document type (e.g. Invoice). For some entity types, one of respective &#x27;structured_value&#x27; fields may also be populated. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.
+        },
+        &quot;pageAnchor&quot;: { # Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types. # Optional. Represents the provenance of this entity wrt. the location on the page where it was found.
+          &quot;pageRefs&quot;: [ # One or more references to visual page elements
+            { # Represents a weak reference to a page element within a document.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # Optional. Identifies the bounding polygon of a layout element on the page.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;layoutId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use PageRef.bounding_poly instead.
+              &quot;layoutType&quot;: &quot;A String&quot;, # Optional. The type of the layout element that is being referenced if any.
+              &quot;page&quot;: &quot;A String&quot;, # Required. Index into the Document.pages element, for example using Document.pages to locate the related page element.
+            },
+          ],
+        },
+        &quot;properties&quot;: [ # Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.
+          # Object with schema name: GoogleCloudDocumentaiV1DocumentEntity
+        ],
+        &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # Optional. The history of this annotation.
+          &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+          &quot;parents&quot;: [ # References to the original elements that are replaced.
+            { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+              &quot;id&quot;: 42, # The id of the parent provenance.
+              &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+            },
+          ],
+          &quot;revision&quot;: 42, # The index of the revision that produced this element.
+          &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+        },
+        &quot;redacted&quot;: True or False, # Optional. Whether the entity will be redacted for de-identification purposes.
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Optional. Provenance of the entity. Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;type&quot;: &quot;A String&quot;, # Entity type from a schema e.g. `Address`.
+      },
+    ],
+    &quot;entityRelations&quot;: [ # Relationship among Document.entities.
+      { # Relationship between Entities.
+        &quot;objectId&quot;: &quot;A String&quot;, # Object entity id.
+        &quot;relation&quot;: &quot;A String&quot;, # Relationship description.
+        &quot;subjectId&quot;: &quot;A String&quot;, # Subject entity id.
+      },
+    ],
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Any error that occurred while processing this document.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.
+    &quot;pages&quot;: [ # Visual page layout for the Document.
+      { # A page in a Document.
+        &quot;blocks&quot;: [ # A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+          { # A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Block.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+          { # Detected language for a structural component.
+            &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+            &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+          },
+        ],
+        &quot;dimension&quot;: { # Dimension for the page. # Physical dimension of the page.
+          &quot;height&quot;: 3.14, # Page height.
+          &quot;unit&quot;: &quot;A String&quot;, # Dimension unit.
+          &quot;width&quot;: 3.14, # Page width.
+        },
+        &quot;formFields&quot;: [ # A list of visually detected form fields on the page.
+          { # A form field detected on the page.
+            &quot;fieldName&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;fieldValue&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField value.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;nameDetectedLanguages&quot;: [ # A list of detected languages for name together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueDetectedLanguages&quot;: [ # A list of detected languages for value together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueType&quot;: &quot;A String&quot;, # If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - &quot;unfilled_checkbox&quot; - &quot;filled_checkbox&quot;
+          },
+        ],
+        &quot;image&quot;: { # Rendered image contents for this page. # Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned.
+          &quot;content&quot;: &quot;A String&quot;, # Raw byte content of the image.
+          &quot;height&quot;: 42, # Height of the image in pixels.
+          &quot;mimeType&quot;: &quot;A String&quot;, # Encoding mime type for the image.
+          &quot;width&quot;: 42, # Width of the image in pixels.
+        },
+        &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for the page.
+          &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+            &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+              { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                &quot;x&quot;: 3.14, # X coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+              },
+            ],
+            &quot;vertices&quot;: [ # 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.
+                &quot;x&quot;: 42, # X coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+              },
+            ],
+          },
+          &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+          &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+          &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+            &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+            &quot;textSegments&quot;: [ # The text segments from the Document.text.
+              { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+              },
+            ],
+          },
+        },
+        &quot;lines&quot;: [ # A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.
+          { # A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Line.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;pageNumber&quot;: 42, # 1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.
+        &quot;paragraphs&quot;: [ # A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.
+          { # A collection of lines that a human would perceive as a paragraph.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Paragraph.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;tables&quot;: [ # A list of visually detected tables on the page.
+          { # A table representation similar to HTML table structure.
+            &quot;bodyRows&quot;: [ # Body rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;headerRows&quot;: [ # Header rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Table.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+          },
+        ],
+        &quot;tokens&quot;: [ # A list of visually detected tokens on the page.
+          { # A detected token.
+            &quot;detectedBreak&quot;: { # Detected break at the end of a Token. # Detected break at the end of a Token.
+              &quot;type&quot;: &quot;A String&quot;, # Detected break type.
+            },
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Token.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;transforms&quot;: [ # Transformation matrices that were applied to the original document image to produce Page.image.
+          { # Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.
+            &quot;cols&quot;: 42, # Number of columns in the matrix.
+            &quot;data&quot;: &quot;A String&quot;, # The matrix data.
+            &quot;rows&quot;: 42, # Number of rows in the matrix.
+            &quot;type&quot;: 42, # This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
+          },
+        ],
+        &quot;visualElements&quot;: [ # A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.
+          { # Detected non-text visual elements e.g. checkbox, signature etc. on the page.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for VisualElement.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;type&quot;: &quot;A String&quot;, # Type of the VisualElement.
+          },
+        ],
+      },
+    ],
+    &quot;revisions&quot;: [ # Revision history of this document.
+      { # Contains past or forward revisions of this document.
+        &quot;agent&quot;: &quot;A String&quot;, # If the change was made by a person specify the name or id of that person.
+        &quot;createTime&quot;: &quot;A String&quot;, # The time that the revision was created.
+        &quot;humanReview&quot;: { # Human Review information of the document. # Human Review information of this revision.
+          &quot;state&quot;: &quot;A String&quot;, # Human review state. e.g. `requested`, `succeeded`, `rejected`.
+          &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.
+        },
+        &quot;id&quot;: &quot;A String&quot;, # Id of the revision. Unique within the context of the document.
+        &quot;parent&quot;: [ # The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.
+          42,
+        ],
+        &quot;processor&quot;: &quot;A String&quot;, # If the annotation was made by processor identify the processor by its resource name.
+      },
+    ],
+    &quot;shardInfo&quot;: { # For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is. # Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified.
+      &quot;shardCount&quot;: &quot;A String&quot;, # Total number of shards.
+      &quot;shardIndex&quot;: &quot;A String&quot;, # The 0-based index of this shard.
+      &quot;textOffset&quot;: &quot;A String&quot;, # The index of the first character in Document.text in the overall document global text.
+    },
+    &quot;text&quot;: &quot;A String&quot;, # Optional. UTF-8 encoded text in reading order from the document.
+    &quot;textChanges&quot;: [ # A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.
+      { # This message is used for text changes aka. OCR corrections.
+        &quot;changedText&quot;: &quot;A String&quot;, # The text that replaces the text identified in the `text_anchor`.
+        &quot;provenance&quot;: [ # The history of this annotation.
+          { # Structure to identify provenance relationships between annotations in different revisions.
+            &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+            &quot;parents&quot;: [ # References to the original elements that are replaced.
+              { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                &quot;id&quot;: 42, # The id of the parent provenance.
+                &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+              },
+            ],
+            &quot;revision&quot;: 42, # The index of the revision that produced this element.
+            &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+          },
+        ],
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+      },
+    ],
+    &quot;textStyles&quot;: [ # Styles for the Document.text.
+      { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;fontSize&quot;: { # Font size with unit. # Font size.
+          &quot;size&quot;: 3.14, # Font size for the text.
+          &quot;unit&quot;: &quot;A String&quot;, # Unit for the font size. Follows CSS naming (in, px, pt, etc.).
+        },
+        &quot;fontWeight&quot;: &quot;A String&quot;, # Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;textDecoration&quot;: &quot;A String&quot;, # Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp
+        &quot;textStyle&quot;: &quot;A String&quot;, # Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp
+      },
+    ],
+    &quot;uri&quot;: &quot;A String&quot;, # Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
+  },
+  &quot;rawDocument&quot;: { # Payload message of raw document content (bytes). # A raw document content (bytes).
+    &quot;content&quot;: &quot;A String&quot;, # Inline document content.
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA MIME type (RFC6838) indicating the nature and format of the [content].
+  },
+  &quot;skipHumanReview&quot;: True or False, # Whether Human Review feature should be skipped for this request. Default to false.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the process document method.
+  &quot;document&quot;: { # Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality. # The document payload, will populate fields based on the processor&#x27;s behavior.
+    &quot;content&quot;: &quot;A String&quot;, # Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.
+    &quot;entities&quot;: [ # A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.
+      { # A phrase in the text that is a known entity type, such as a person, an organization, or location.
+        &quot;confidence&quot;: 3.14, # Optional. Confidence of detected Schema entity. Range [0, 1].
+        &quot;id&quot;: &quot;A String&quot;, # Optional. Canonical id. This will be a unique value in the entity list for this document.
+        &quot;mentionId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use `id` field instead.
+        &quot;mentionText&quot;: &quot;A String&quot;, # Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`.
+        &quot;normalizedValue&quot;: { # Parsed and normalized entity value. # Optional. Normalized entity value. Absent if the extracted value could not be converted or the type (e.g. address) is not supported for certain parsers. This field is also only populated for certain supported document types.
+          &quot;addressValue&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Postal address. See also: https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
+            &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+              &quot;A String&quot;,
+            ],
+            &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+            &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+            &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+            &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+            &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+              &quot;A String&quot;,
+            ],
+            &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+            &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+            &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+            &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+          },
+          &quot;booleanValue&quot;: True or False, # Boolean value. Can be used for entities with binary values, or for checkboxes.
+          &quot;dateValue&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Date value. Includes year, month, day. See also: https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
+            &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+            &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+            &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+          },
+          &quot;datetimeValue&quot;: { # Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user&#x27;s timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application&#x27;s limitations. # DateTime value. Includes date, time, and timezone. See also: https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
+            &quot;day&quot;: 42, # Required. Day of month. Must be from 1 to 31 and valid for the year and month.
+            &quot;hours&quot;: 42, # Required. Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+            &quot;minutes&quot;: 42, # Required. Minutes of hour of day. Must be from 0 to 59.
+            &quot;month&quot;: 42, # Required. Month of year. Must be from 1 to 12.
+            &quot;nanos&quot;: 42, # Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+            &quot;seconds&quot;: 42, # Required. Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+            &quot;timeZone&quot;: { # Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones). # Time zone.
+              &quot;id&quot;: &quot;A String&quot;, # IANA Time Zone Database time zone, e.g. &quot;America/New_York&quot;.
+              &quot;version&quot;: &quot;A String&quot;, # Optional. IANA Time Zone Database version number, e.g. &quot;2019a&quot;.
+            },
+            &quot;utcOffset&quot;: &quot;A String&quot;, # UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
+            &quot;year&quot;: 42, # Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
+          },
+          &quot;moneyValue&quot;: { # Represents an amount of money with its currency type. # Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+          &quot;text&quot;: &quot;A String&quot;, # Required. Normalized entity value stored as a string. This field is populated for supported document type (e.g. Invoice). For some entity types, one of respective &#x27;structured_value&#x27; fields may also be populated. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.
+        },
+        &quot;pageAnchor&quot;: { # Referencing the visual context of the entity in the Document.pages. Page anchors can be cross-page, consist of multiple bounding polygons and optionally reference specific layout element types. # Optional. Represents the provenance of this entity wrt. the location on the page where it was found.
+          &quot;pageRefs&quot;: [ # One or more references to visual page elements
+            { # Represents a weak reference to a page element within a document.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # Optional. Identifies the bounding polygon of a layout element on the page.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;layoutId&quot;: &quot;A String&quot;, # Optional. Deprecated. Use PageRef.bounding_poly instead.
+              &quot;layoutType&quot;: &quot;A String&quot;, # Optional. The type of the layout element that is being referenced if any.
+              &quot;page&quot;: &quot;A String&quot;, # Required. Index into the Document.pages element, for example using Document.pages to locate the related page element.
+            },
+          ],
+        },
+        &quot;properties&quot;: [ # Optional. Entities can be nested to form a hierarchical data structure representing the content in the document.
+          # Object with schema name: GoogleCloudDocumentaiV1DocumentEntity
+        ],
+        &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # Optional. The history of this annotation.
+          &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+          &quot;parents&quot;: [ # References to the original elements that are replaced.
+            { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+              &quot;id&quot;: 42, # The id of the parent provenance.
+              &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+            },
+          ],
+          &quot;revision&quot;: 42, # The index of the revision that produced this element.
+          &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+        },
+        &quot;redacted&quot;: True or False, # Optional. Whether the entity will be redacted for de-identification purposes.
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Optional. Provenance of the entity. Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;type&quot;: &quot;A String&quot;, # Entity type from a schema e.g. `Address`.
+      },
+    ],
+    &quot;entityRelations&quot;: [ # Relationship among Document.entities.
+      { # Relationship between Entities.
+        &quot;objectId&quot;: &quot;A String&quot;, # Object entity id.
+        &quot;relation&quot;: &quot;A String&quot;, # Relationship description.
+        &quot;subjectId&quot;: &quot;A String&quot;, # Subject entity id.
+      },
+    ],
+    &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Any error that occurred while processing this document.
+      &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+      &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+        {
+          &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+        },
+      ],
+      &quot;message&quot;: &quot;A String&quot;, # 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.
+    },
+    &quot;mimeType&quot;: &quot;A String&quot;, # An IANA published MIME type (also referred to as media type). For more information, see https://www.iana.org/assignments/media-types/media-types.xhtml.
+    &quot;pages&quot;: [ # Visual page layout for the Document.
+      { # A page in a Document.
+        &quot;blocks&quot;: [ # A list of visually detected text blocks on the page. A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+          { # A block has a set of lines (collected into paragraphs) that have a common line-spacing and orientation.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Block.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+          { # Detected language for a structural component.
+            &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+            &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+          },
+        ],
+        &quot;dimension&quot;: { # Dimension for the page. # Physical dimension of the page.
+          &quot;height&quot;: 3.14, # Page height.
+          &quot;unit&quot;: &quot;A String&quot;, # Dimension unit.
+          &quot;width&quot;: 3.14, # Page width.
+        },
+        &quot;formFields&quot;: [ # A list of visually detected form fields on the page.
+          { # A form field detected on the page.
+            &quot;fieldName&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;fieldValue&quot;: { # Visual element describing a layout unit on a page. # Layout for the FormField value.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;nameDetectedLanguages&quot;: [ # A list of detected languages for name together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueDetectedLanguages&quot;: [ # A list of detected languages for value together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;valueType&quot;: &quot;A String&quot;, # If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - &quot;unfilled_checkbox&quot; - &quot;filled_checkbox&quot;
+          },
+        ],
+        &quot;image&quot;: { # Rendered image contents for this page. # Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned.
+          &quot;content&quot;: &quot;A String&quot;, # Raw byte content of the image.
+          &quot;height&quot;: 42, # Height of the image in pixels.
+          &quot;mimeType&quot;: &quot;A String&quot;, # Encoding mime type for the image.
+          &quot;width&quot;: 42, # Width of the image in pixels.
+        },
+        &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for the page.
+          &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+            &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+              { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                &quot;x&quot;: 3.14, # X coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+              },
+            ],
+            &quot;vertices&quot;: [ # 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.
+                &quot;x&quot;: 42, # X coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+              },
+            ],
+          },
+          &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+          &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+          &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+            &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+            &quot;textSegments&quot;: [ # The text segments from the Document.text.
+              { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+              },
+            ],
+          },
+        },
+        &quot;lines&quot;: [ # A list of visually detected text lines on the page. A collection of tokens that a human would perceive as a line.
+          { # A collection of tokens that a human would perceive as a line. Does not cross column boundaries, can be horizontal, vertical, etc.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Line.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;pageNumber&quot;: 42, # 1-based index for current Page in a parent Document. Useful when a page is taken out of a Document for individual processing.
+        &quot;paragraphs&quot;: [ # A list of visually detected text paragraphs on the page. A collection of lines that a human would perceive as a paragraph.
+          { # A collection of lines that a human would perceive as a paragraph.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Paragraph.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;tables&quot;: [ # A list of visually detected tables on the page.
+          { # A table representation similar to HTML table structure.
+            &quot;bodyRows&quot;: [ # Body rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;headerRows&quot;: [ # Header rows of the table.
+              { # A row of table cells.
+                &quot;cells&quot;: [ # Cells that make up this row.
+                  { # A cell representation inside the table.
+                    &quot;colSpan&quot;: 42, # How many columns this cell spans.
+                    &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+                      { # Detected language for a structural component.
+                        &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                        &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+                      },
+                    ],
+                    &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for TableCell.
+                      &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                        &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                          { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                            &quot;x&quot;: 3.14, # X coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                        &quot;vertices&quot;: [ # 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.
+                            &quot;x&quot;: 42, # X coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                          },
+                        ],
+                      },
+                      &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+                      &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+                      &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                        &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                        &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                          { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                            &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                            &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                          },
+                        ],
+                      },
+                    },
+                    &quot;rowSpan&quot;: 42, # How many rows this cell spans.
+                  },
+                ],
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Table.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+          },
+        ],
+        &quot;tokens&quot;: [ # A list of visually detected tokens on the page.
+          { # A detected token.
+            &quot;detectedBreak&quot;: { # Detected break at the end of a Token. # Detected break at the end of a Token.
+              &quot;type&quot;: &quot;A String&quot;, # Detected break type.
+            },
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for Token.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;provenance&quot;: { # Structure to identify provenance relationships between annotations in different revisions. # The history of this annotation.
+              &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+              &quot;parents&quot;: [ # References to the original elements that are replaced.
+                { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                  &quot;id&quot;: 42, # The id of the parent provenance.
+                  &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+                },
+              ],
+              &quot;revision&quot;: 42, # The index of the revision that produced this element.
+              &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+            },
+          },
+        ],
+        &quot;transforms&quot;: [ # Transformation matrices that were applied to the original document image to produce Page.image.
+          { # Representation for transformation matrix, intended to be compatible and used with OpenCV format for image manipulation.
+            &quot;cols&quot;: 42, # Number of columns in the matrix.
+            &quot;data&quot;: &quot;A String&quot;, # The matrix data.
+            &quot;rows&quot;: 42, # Number of rows in the matrix.
+            &quot;type&quot;: 42, # This encodes information about what data type the matrix uses. For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list of OpenCV primitive data types, please refer to https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
+          },
+        ],
+        &quot;visualElements&quot;: [ # A list of detected non-text visual elements e.g. checkbox, signature etc. on the page.
+          { # Detected non-text visual elements e.g. checkbox, signature etc. on the page.
+            &quot;detectedLanguages&quot;: [ # A list of detected languages together with confidence.
+              { # Detected language for a structural component.
+                &quot;confidence&quot;: 3.14, # Confidence of detected language. Range [0, 1].
+                &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
+              },
+            ],
+            &quot;layout&quot;: { # Visual element describing a layout unit on a page. # Layout for VisualElement.
+              &quot;boundingPoly&quot;: { # A bounding polygon for the detected image annotation. # The bounding polygon for the Layout.
+                &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
+                  { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
+                    &quot;x&quot;: 3.14, # X coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+                &quot;vertices&quot;: [ # 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.
+                    &quot;x&quot;: 42, # X coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
+                  },
+                ],
+              },
+              &quot;confidence&quot;: 3.14, # Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].
+              &quot;orientation&quot;: &quot;A String&quot;, # Detected orientation for the Layout.
+              &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+                &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+                &quot;textSegments&quot;: [ # The text segments from the Document.text.
+                  { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+                    &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+                    &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+                  },
+                ],
+              },
+            },
+            &quot;type&quot;: &quot;A String&quot;, # Type of the VisualElement.
+          },
+        ],
+      },
+    ],
+    &quot;revisions&quot;: [ # Revision history of this document.
+      { # Contains past or forward revisions of this document.
+        &quot;agent&quot;: &quot;A String&quot;, # If the change was made by a person specify the name or id of that person.
+        &quot;createTime&quot;: &quot;A String&quot;, # The time that the revision was created.
+        &quot;humanReview&quot;: { # Human Review information of the document. # Human Review information of this revision.
+          &quot;state&quot;: &quot;A String&quot;, # Human review state. e.g. `requested`, `succeeded`, `rejected`.
+          &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the current state of processing. For example, the rejection reason when the state is `rejected`.
+        },
+        &quot;id&quot;: &quot;A String&quot;, # Id of the revision. Unique within the context of the document.
+        &quot;parent&quot;: [ # The revisions that this revision is based on. This can include one or more parent (when documents are merged.) This field represents the index into the `revisions` field.
+          42,
+        ],
+        &quot;processor&quot;: &quot;A String&quot;, # If the annotation was made by processor identify the processor by its resource name.
+      },
+    ],
+    &quot;shardInfo&quot;: { # For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is. # Information about the sharding if this document is sharded part of a larger document. If the document is not sharded, this message is not specified.
+      &quot;shardCount&quot;: &quot;A String&quot;, # Total number of shards.
+      &quot;shardIndex&quot;: &quot;A String&quot;, # The 0-based index of this shard.
+      &quot;textOffset&quot;: &quot;A String&quot;, # The index of the first character in Document.text in the overall document global text.
+    },
+    &quot;text&quot;: &quot;A String&quot;, # Optional. UTF-8 encoded text in reading order from the document.
+    &quot;textChanges&quot;: [ # A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.
+      { # This message is used for text changes aka. OCR corrections.
+        &quot;changedText&quot;: &quot;A String&quot;, # The text that replaces the text identified in the `text_anchor`.
+        &quot;provenance&quot;: [ # The history of this annotation.
+          { # Structure to identify provenance relationships between annotations in different revisions.
+            &quot;id&quot;: 42, # The Id of this operation. Needs to be unique within the scope of the revision.
+            &quot;parents&quot;: [ # References to the original elements that are replaced.
+              { # Structure for referencing parent provenances. When an element replaces one of more other elements parent references identify the elements that are replaced.
+                &quot;id&quot;: 42, # The id of the parent provenance.
+                &quot;revision&quot;: 42, # The index of the [Document.revisions] identifying the parent revision.
+              },
+            ],
+            &quot;revision&quot;: 42, # The index of the revision that produced this element.
+            &quot;type&quot;: &quot;A String&quot;, # The type of provenance operation.
+          },
+        ],
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Provenance of the correction. Text anchor indexing into the Document.text. There can only be a single `TextAnchor.text_segments` element. If the start and end index of the text segment are the same, the text change is inserted before that index.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+      },
+    ],
+    &quot;textStyles&quot;: [ # Styles for the Document.text.
+      { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
+          &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+          &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
+          &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
+        },
+        &quot;fontSize&quot;: { # Font size with unit. # Font size.
+          &quot;size&quot;: 3.14, # Font size for the text.
+          &quot;unit&quot;: &quot;A String&quot;, # Unit for the font size. Follows CSS naming (in, px, pt, etc.).
+        },
+        &quot;fontWeight&quot;: &quot;A String&quot;, # Font weight. Possible values are normal, bold, bolder, and lighter. https://www.w3schools.com/cssref/pr_font_weight.asp
+        &quot;textAnchor&quot;: { # Text reference indexing into the Document.text. # Text anchor indexing into the Document.text.
+          &quot;content&quot;: &quot;A String&quot;, # Contains the content of the text span so that users do not have to look it up in the text_segments.
+          &quot;textSegments&quot;: [ # The text segments from the Document.text.
+            { # A text segment in the Document.text. The indices may be out of bounds which indicate that the text extends into another document shard for large sharded documents. See ShardInfo.text_offset
+              &quot;endIndex&quot;: &quot;A String&quot;, # TextSegment half open end UTF-8 char index in the Document.text.
+              &quot;startIndex&quot;: &quot;A String&quot;, # TextSegment start UTF-8 char index in the Document.text.
+            },
+          ],
+        },
+        &quot;textDecoration&quot;: &quot;A String&quot;, # Text decoration. Follows CSS standard. https://www.w3schools.com/cssref/pr_text_text-decoration.asp
+        &quot;textStyle&quot;: &quot;A String&quot;, # Text style. Possible values are normal, italic, and oblique. https://www.w3schools.com/cssref/pr_font_font-style.asp
+      },
+    ],
+    &quot;uri&quot;: &quot;A String&quot;, # Optional. Currently supports Google Cloud Storage URI of the form `gs://bucket_name/object_name`. Object versioning is not supported. See [Google Cloud Storage Request URIs](https://cloud.google.com/storage/docs/reference-uris) for more info.
+  },
+  &quot;humanReviewStatus&quot;: { # The status of human review on a processed document. # The status of human review on the processed document.
+    &quot;humanReviewOperation&quot;: &quot;A String&quot;, # The name of the operation triggered by the processed document. This field is populated only when the [state] is [HUMAN_REVIEW_IN_PROGRESS]. It has the same response type and metadata as the long running operation returned by [ReviewDocument] method.
+    &quot;state&quot;: &quot;A String&quot;, # The state of human review on the processing request.
+    &quot;stateMessage&quot;: &quot;A String&quot;, # A message providing more details about the human review state.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.projects.operations.html b/docs/dyn/documentai_v1.projects.operations.html
new file mode 100644
index 0000000..5d835e3
--- /dev/null
+++ b/docs/dyn/documentai_v1.projects.operations.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.projects.html">projects</a> . <a href="documentai_v1.projects.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.uiv1beta3.html b/docs/dyn/documentai_v1.uiv1beta3.html
new file mode 100644
index 0000000..0babb7a
--- /dev/null
+++ b/docs/dyn/documentai_v1.uiv1beta3.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.uiv1beta3.html">uiv1beta3</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.uiv1beta3.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.uiv1beta3.projects.html b/docs/dyn/documentai_v1.uiv1beta3.projects.html
new file mode 100644
index 0000000..3de5257
--- /dev/null
+++ b/docs/dyn/documentai_v1.uiv1beta3.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.uiv1beta3.html">uiv1beta3</a> . <a href="documentai_v1.uiv1beta3.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.uiv1beta3.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.uiv1beta3.projects.locations.html b/docs/dyn/documentai_v1.uiv1beta3.projects.locations.html
new file mode 100644
index 0000000..08ad384
--- /dev/null
+++ b/docs/dyn/documentai_v1.uiv1beta3.projects.locations.html
@@ -0,0 +1,176 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.uiv1beta3.html">uiv1beta3</a> . <a href="documentai_v1.uiv1beta3.projects.html">projects</a> . <a href="documentai_v1.uiv1beta3.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="documentai_v1.uiv1beta3.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1.uiv1beta3.projects.locations.operations.html b/docs/dyn/documentai_v1.uiv1beta3.projects.locations.operations.html
new file mode 100644
index 0000000..18b59fd
--- /dev/null
+++ b/docs/dyn/documentai_v1.uiv1beta3.projects.locations.operations.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="documentai_v1.html">Cloud Document AI API</a> . <a href="documentai_v1.uiv1beta3.html">uiv1beta3</a> . <a href="documentai_v1.uiv1beta3.projects.html">projects</a> . <a href="documentai_v1.uiv1beta3.projects.locations.html">locations</a> . <a href="documentai_v1.uiv1beta3.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/documentai_v1beta2.projects.documents.html b/docs/dyn/documentai_v1beta2.projects.documents.html
index 1fbbdef..b621158 100644
--- a/docs/dyn/documentai_v1beta2.projects.documents.html
+++ b/docs/dyn/documentai_v1beta2.projects.documents.html
@@ -147,13 +147,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -260,13 +260,13 @@
           &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
             { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
               &quot;x&quot;: 3.14, # X coordinate.
-              &quot;y&quot;: 3.14, # Y coordinate.
+              &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
             },
           ],
           &quot;vertices&quot;: [ # 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.
               &quot;x&quot;: 42, # X coordinate.
-              &quot;y&quot;: 42, # Y coordinate.
+              &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
             },
           ],
         },
@@ -344,13 +344,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -426,13 +426,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -479,13 +479,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -506,13 +506,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -554,13 +554,13 @@
           &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
             { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
               &quot;x&quot;: 3.14, # X coordinate.
-              &quot;y&quot;: 3.14, # Y coordinate.
+              &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
             },
           ],
           &quot;vertices&quot;: [ # 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.
               &quot;x&quot;: 42, # X coordinate.
-              &quot;y&quot;: 42, # Y coordinate.
+              &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
             },
           ],
         },
@@ -589,13 +589,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -638,13 +638,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -691,13 +691,13 @@
                       &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                         { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                           &quot;x&quot;: 3.14, # X coordinate.
-                          &quot;y&quot;: 3.14, # Y coordinate.
+                          &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                         },
                       ],
                       &quot;vertices&quot;: [ # 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.
                           &quot;x&quot;: 42, # X coordinate.
-                          &quot;y&quot;: 42, # Y coordinate.
+                          &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                         },
                       ],
                     },
@@ -740,13 +740,13 @@
                       &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                         { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                           &quot;x&quot;: 3.14, # X coordinate.
-                          &quot;y&quot;: 3.14, # Y coordinate.
+                          &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                         },
                       ],
                       &quot;vertices&quot;: [ # 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.
                           &quot;x&quot;: 42, # X coordinate.
-                          &quot;y&quot;: 42, # Y coordinate.
+                          &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                         },
                       ],
                     },
@@ -772,13 +772,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -812,13 +812,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -868,13 +868,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -945,14 +945,14 @@
   ],
   &quot;textStyles&quot;: [ # Styles for the Document.text.
     { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-      &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+      &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
         &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
         &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
         &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
       },
-      &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+      &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
         &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
         &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
         &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
diff --git a/docs/dyn/documentai_v1beta2.projects.locations.documents.html b/docs/dyn/documentai_v1beta2.projects.locations.documents.html
index 04ece53..36685a1 100644
--- a/docs/dyn/documentai_v1beta2.projects.locations.documents.html
+++ b/docs/dyn/documentai_v1beta2.projects.locations.documents.html
@@ -147,13 +147,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -260,13 +260,13 @@
           &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
             { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
               &quot;x&quot;: 3.14, # X coordinate.
-              &quot;y&quot;: 3.14, # Y coordinate.
+              &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
             },
           ],
           &quot;vertices&quot;: [ # 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.
               &quot;x&quot;: 42, # X coordinate.
-              &quot;y&quot;: 42, # Y coordinate.
+              &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
             },
           ],
         },
@@ -344,13 +344,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -426,13 +426,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -479,13 +479,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -506,13 +506,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -554,13 +554,13 @@
           &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
             { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
               &quot;x&quot;: 3.14, # X coordinate.
-              &quot;y&quot;: 3.14, # Y coordinate.
+              &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
             },
           ],
           &quot;vertices&quot;: [ # 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.
               &quot;x&quot;: 42, # X coordinate.
-              &quot;y&quot;: 42, # Y coordinate.
+              &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
             },
           ],
         },
@@ -589,13 +589,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -638,13 +638,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -691,13 +691,13 @@
                       &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                         { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                           &quot;x&quot;: 3.14, # X coordinate.
-                          &quot;y&quot;: 3.14, # Y coordinate.
+                          &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                         },
                       ],
                       &quot;vertices&quot;: [ # 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.
                           &quot;x&quot;: 42, # X coordinate.
-                          &quot;y&quot;: 42, # Y coordinate.
+                          &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                         },
                       ],
                     },
@@ -740,13 +740,13 @@
                       &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                         { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                           &quot;x&quot;: 3.14, # X coordinate.
-                          &quot;y&quot;: 3.14, # Y coordinate.
+                          &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                         },
                       ],
                       &quot;vertices&quot;: [ # 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.
                           &quot;x&quot;: 42, # X coordinate.
-                          &quot;y&quot;: 42, # Y coordinate.
+                          &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                         },
                       ],
                     },
@@ -772,13 +772,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -812,13 +812,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -868,13 +868,13 @@
               &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                 { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                   &quot;x&quot;: 3.14, # X coordinate.
-                  &quot;y&quot;: 3.14, # Y coordinate.
+                  &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                 },
               ],
               &quot;vertices&quot;: [ # 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.
                   &quot;x&quot;: 42, # X coordinate.
-                  &quot;y&quot;: 42, # Y coordinate.
+                  &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                 },
               ],
             },
@@ -945,14 +945,14 @@
   ],
   &quot;textStyles&quot;: [ # Styles for the Document.text.
     { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-      &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+      &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
         &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
         &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
         &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
       },
-      &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+      &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+        &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
         &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
         &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
         &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
diff --git a/docs/dyn/documentai_v1beta3.projects.locations.processors.html b/docs/dyn/documentai_v1beta3.projects.locations.processors.html
index c249efd..5356193 100644
--- a/docs/dyn/documentai_v1beta3.projects.locations.processors.html
+++ b/docs/dyn/documentai_v1beta3.projects.locations.processors.html
@@ -238,13 +238,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -313,13 +313,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -366,13 +366,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -393,13 +393,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -441,13 +441,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -476,13 +476,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -525,13 +525,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -578,13 +578,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -627,13 +627,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -659,13 +659,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -699,13 +699,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -755,13 +755,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -832,14 +832,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
@@ -924,13 +924,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -999,13 +999,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1052,13 +1052,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1079,13 +1079,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1127,13 +1127,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -1162,13 +1162,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1211,13 +1211,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1264,13 +1264,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -1313,13 +1313,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -1345,13 +1345,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1385,13 +1385,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1441,13 +1441,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1518,14 +1518,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
@@ -1626,13 +1626,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1701,13 +1701,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1754,13 +1754,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1781,13 +1781,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1829,13 +1829,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -1864,13 +1864,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1913,13 +1913,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1966,13 +1966,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -2015,13 +2015,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -2047,13 +2047,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -2087,13 +2087,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -2143,13 +2143,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -2220,14 +2220,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
diff --git a/docs/dyn/documentai_v1beta3.projects.locations.processors.humanReviewConfig.html b/docs/dyn/documentai_v1beta3.projects.locations.processors.humanReviewConfig.html
index 059aba3..569fbb9 100644
--- a/docs/dyn/documentai_v1beta3.projects.locations.processors.humanReviewConfig.html
+++ b/docs/dyn/documentai_v1beta3.projects.locations.processors.humanReviewConfig.html
@@ -156,13 +156,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -231,13 +231,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -284,13 +284,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -311,13 +311,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -359,13 +359,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -394,13 +394,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -443,13 +443,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -496,13 +496,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -545,13 +545,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -577,13 +577,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -617,13 +617,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -673,13 +673,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -750,14 +750,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
@@ -842,13 +842,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -917,13 +917,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -970,13 +970,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -997,13 +997,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1045,13 +1045,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -1080,13 +1080,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1129,13 +1129,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1182,13 +1182,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -1231,13 +1231,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -1263,13 +1263,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1303,13 +1303,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1359,13 +1359,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1436,14 +1436,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
diff --git a/docs/dyn/documentai_v1beta3.projects.locations.processors.processorVersions.html b/docs/dyn/documentai_v1beta3.projects.locations.processors.processorVersions.html
index fb4e52b..1afb368 100644
--- a/docs/dyn/documentai_v1beta3.projects.locations.processors.processorVersions.html
+++ b/docs/dyn/documentai_v1beta3.projects.locations.processors.processorVersions.html
@@ -228,13 +228,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -303,13 +303,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -356,13 +356,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -383,13 +383,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -431,13 +431,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -466,13 +466,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -515,13 +515,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -568,13 +568,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -617,13 +617,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -649,13 +649,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -689,13 +689,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -745,13 +745,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -822,14 +822,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
@@ -914,13 +914,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -989,13 +989,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1042,13 +1042,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1069,13 +1069,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1117,13 +1117,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -1152,13 +1152,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1201,13 +1201,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1254,13 +1254,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -1303,13 +1303,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -1335,13 +1335,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1375,13 +1375,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1431,13 +1431,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1508,14 +1508,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
@@ -1616,13 +1616,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1691,13 +1691,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1744,13 +1744,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1771,13 +1771,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1819,13 +1819,13 @@
             &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
               { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                 &quot;x&quot;: 3.14, # X coordinate.
-                &quot;y&quot;: 3.14, # Y coordinate.
+                &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
               },
             ],
             &quot;vertices&quot;: [ # 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.
                 &quot;x&quot;: 42, # X coordinate.
-                &quot;y&quot;: 42, # Y coordinate.
+                &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
               },
             ],
           },
@@ -1854,13 +1854,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1903,13 +1903,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -1956,13 +1956,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -2005,13 +2005,13 @@
                         &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                           { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                             &quot;x&quot;: 3.14, # X coordinate.
-                            &quot;y&quot;: 3.14, # Y coordinate.
+                            &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                           },
                         ],
                         &quot;vertices&quot;: [ # 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.
                             &quot;x&quot;: 42, # X coordinate.
-                            &quot;y&quot;: 42, # Y coordinate.
+                            &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                           },
                         ],
                       },
@@ -2037,13 +2037,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -2077,13 +2077,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -2133,13 +2133,13 @@
                 &quot;normalizedVertices&quot;: [ # The bounding polygon normalized vertices.
                   { # A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.
                     &quot;x&quot;: 3.14, # X coordinate.
-                    &quot;y&quot;: 3.14, # Y coordinate.
+                    &quot;y&quot;: 3.14, # Y coordinate (starts from the top of the image).
                   },
                 ],
                 &quot;vertices&quot;: [ # 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.
                     &quot;x&quot;: 42, # X coordinate.
-                    &quot;y&quot;: 42, # Y coordinate.
+                    &quot;y&quot;: 42, # Y coordinate (starts from the top of the image).
                   },
                 ],
               },
@@ -2210,14 +2210,14 @@
     ],
     &quot;textStyles&quot;: [ # Styles for the Document.text.
       { # Annotation for common text style attributes. This adheres to CSS conventions as much as possible.
-        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;backgroundColor&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text background color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
         },
-        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness; for example, the fields of this representation can be trivially provided to the constructor of &quot;java.awt.Color&quot; in Java; it can also be trivially provided to UIColor&#x27;s &quot;+colorWithRed:green:blue:alpha&quot; method in iOS; and, with just a little work, it can be easily formatted into a CSS &quot;rgba()&quot; string in JavaScript, as well. Note: this proto does not carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color space. Note: when color equality needs to be decided, implementations, unless documented otherwise, will treat two colors to be equal if all their red, green, blue and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor_(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor_ = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
-          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is to be rendered as a solid color (as if the alpha value had been explicitly given with a value of 1.0).
+        &quot;color&quot;: { # Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to/from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor&#x27;s `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn&#x27;t carry information about the absolute color space that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most 1e-5. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&amp;red green:&amp;green blue:&amp;blue alpha:&amp;alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha &lt;= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(&#x27;alpha&#x27; in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(&#x27;,&#x27;); return [&#x27;rgba(&#x27;, rgbParams, &#x27;,&#x27;, alphaFrac, &#x27;)&#x27;].join(&#x27;&#x27;); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red &lt;&lt; 16) | (green &lt;&lt; 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [&#x27;#&#x27;]; for (var i = 0; i &lt; missingZeros; i++) { resultBuilder.push(&#x27;0&#x27;); } resultBuilder.push(hexString); return resultBuilder.join(&#x27;&#x27;); }; // ... # Text color.
+          &quot;alpha&quot;: 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 * (this 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. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).
           &quot;blue&quot;: 3.14, # The amount of blue in the color as a value in the interval [0, 1].
           &quot;green&quot;: 3.14, # The amount of green in the color as a value in the interval [0, 1].
           &quot;red&quot;: 3.14, # The amount of red in the color as a value in the interval [0, 1].
diff --git a/docs/dyn/file_v1.projects.locations.html b/docs/dyn/file_v1.projects.locations.html
index 7dafbf9..5f74682 100644
--- a/docs/dyn/file_v1.projects.locations.html
+++ b/docs/dyn/file_v1.projects.locations.html
@@ -140,10 +140,10 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
   includeUnrevealedLocations: boolean, If true, the returned list will include locations which are not yet revealed.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/file_v1beta1.projects.locations.html b/docs/dyn/file_v1beta1.projects.locations.html
index fc9456a..c4818d0 100644
--- a/docs/dyn/file_v1beta1.projects.locations.html
+++ b/docs/dyn/file_v1beta1.projects.locations.html
@@ -140,10 +140,10 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
   includeUnrevealedLocations: boolean, If true, the returned list will include locations which are not yet revealed.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/firebasestorage_v1beta.html b/docs/dyn/firebasestorage_v1beta.html
new file mode 100644
index 0000000..d180711
--- /dev/null
+++ b/docs/dyn/firebasestorage_v1beta.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="firebasestorage_v1beta.html">Cloud Storage for Firebase API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="firebasestorage_v1beta.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/firebasestorage_v1beta.projects.buckets.html b/docs/dyn/firebasestorage_v1beta.projects.buckets.html
new file mode 100644
index 0000000..7e77bbd
--- /dev/null
+++ b/docs/dyn/firebasestorage_v1beta.projects.buckets.html
@@ -0,0 +1,209 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="firebasestorage_v1beta.html">Cloud Storage for Firebase API</a> . <a href="firebasestorage_v1beta.projects.html">projects</a> . <a href="firebasestorage_v1beta.projects.buckets.html">buckets</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#addFirebase">addFirebase(bucket, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Links a Google Cloud Storage bucket to a Firebase project.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a single linked storage bucket.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the linked storage buckets 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="#removeFirebase">removeFirebase(bucket, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Unlinks a linked Google Cloud Storage bucket from a Firebase project.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="addFirebase">addFirebase(bucket, body=None, x__xgafv=None)</code>
+  <pre>Links a Google Cloud Storage bucket to a Firebase project.
+
+Args:
+  bucket: string, Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket. Because bucket resource names are unique across projects, you may omit the project number, `projects/-/buckets/{bucket_id}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request used to link a Google Cloud Storage bucket to a Firebase project.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A storage bucket and its relation to a parent Firebase project.
+  &quot;name&quot;: &quot;A String&quot;, # Resource name of the bucket.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a single linked storage bucket.
+
+Args:
+  name: string, Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket. Because bucket resource names are unique across projects, you may omit the project number, `projects/-/buckets/{bucket_id}`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A storage bucket and its relation to a parent Firebase project.
+  &quot;name&quot;: &quot;A String&quot;, # Resource name of the bucket.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the linked storage buckets for a project.
+
+Args:
+  parent: string, Required. Resource name of the parent Firebase project, `projects/{project_number}`. (required)
+  pageSize: integer, The maximum number of buckets to return. If not set, the server will use a reasonable default.
+  pageToken: string, A page token, received from a previous `ListBuckets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBuckets` must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned by `ListBuckets`.
+  &quot;buckets&quot;: [ # The list of linked buckets.
+    { # A storage bucket and its relation to a parent Firebase project.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name of the bucket.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="removeFirebase">removeFirebase(bucket, body=None, x__xgafv=None)</code>
+  <pre>Unlinks a linked Google Cloud Storage bucket from a Firebase project.
+
+Args:
+  bucket: string, Required. Resource name of the bucket, mirrors the ID of the underlying Google Cloud Storage bucket. Because bucket resource names are unique across projects, you may omit the project number, `projects/-/buckets/{bucket_id}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request used to unlink a Google Cloud Storage bucket from a Firebase project.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/firebasestorage_v1beta.projects.html b/docs/dyn/firebasestorage_v1beta.projects.html
new file mode 100644
index 0000000..c99d7b2
--- /dev/null
+++ b/docs/dyn/firebasestorage_v1beta.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="firebasestorage_v1beta.html">Cloud Storage for Firebase API</a> . <a href="firebasestorage_v1beta.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="firebasestorage_v1beta.projects.buckets.html">buckets()</a></code>
+</p>
+<p class="firstline">Returns the buckets Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/firestore_v1.projects.databases.documents.html b/docs/dyn/firestore_v1.projects.databases.documents.html
index dc47e0d..40e9d55 100644
--- a/docs/dyn/firestore_v1.projects.databases.documents.html
+++ b/docs/dyn/firestore_v1.projects.databases.documents.html
@@ -175,11 +175,7 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-          &quot;values&quot;: [ # Values in the array.
-            # Object with schema name: Value
-          ],
-        },
+        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -234,16 +230,31 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
+                { # A message that can hold any of the supported value types.
+                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                  &quot;booleanValue&quot;: True or False, # A boolean value.
+                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                  &quot;doubleValue&quot;: 3.14, # A double value.
+                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                  },
+                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                  &quot;mapValue&quot;: { # A map value. # A map value.
+                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                      &quot;a_key&quot;: # Object with schema name: Value
+                    },
+                  },
+                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+                },
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -263,11 +274,7 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -287,11 +294,7 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -312,7 +315,26 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
+                { # A message that can hold any of the supported value types.
+                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                  &quot;booleanValue&quot;: True or False, # A boolean value.
+                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                  &quot;doubleValue&quot;: 3.14, # A double value.
+                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                  },
+                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                  &quot;mapValue&quot;: { # A map value. # A map value.
+                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                      &quot;a_key&quot;: # Object with schema name: Value
+                    },
+                  },
+                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+                },
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -323,11 +345,7 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -359,16 +377,31 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
+              { # A message that can hold any of the supported value types.
+                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;booleanValue&quot;: True or False, # A boolean value.
+                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                &quot;doubleValue&quot;: 3.14, # A double value.
+                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
+                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                &quot;mapValue&quot;: { # A map value. # A map value.
+                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                    &quot;a_key&quot;: # Object with schema name: Value
+                  },
+                },
+                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+              },
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -388,11 +421,7 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -412,11 +441,7 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -437,7 +462,26 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
+              { # A message that can hold any of the supported value types.
+                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;booleanValue&quot;: True or False, # A boolean value.
+                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                &quot;doubleValue&quot;: 3.14, # A double value.
+                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
+                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                &quot;mapValue&quot;: { # A map value. # A map value.
+                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                    &quot;a_key&quot;: # Object with schema name: Value
+                  },
+                },
+                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+              },
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -471,11 +515,7 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -563,16 +603,31 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
+                { # A message that can hold any of the supported value types.
+                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                  &quot;booleanValue&quot;: True or False, # A boolean value.
+                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                  &quot;doubleValue&quot;: 3.14, # A double value.
+                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                  },
+                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                  &quot;mapValue&quot;: { # A map value. # A map value.
+                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                      &quot;a_key&quot;: # Object with schema name: Value
+                    },
+                  },
+                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+                },
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -592,11 +647,7 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -616,11 +667,7 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -641,7 +688,26 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
+                { # A message that can hold any of the supported value types.
+                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                  &quot;booleanValue&quot;: True or False, # A boolean value.
+                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                  &quot;doubleValue&quot;: 3.14, # A double value.
+                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                  },
+                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                  &quot;mapValue&quot;: { # A map value. # A map value.
+                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                      &quot;a_key&quot;: # Object with schema name: Value
+                    },
+                  },
+                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+                },
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -652,11 +718,7 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -688,16 +750,31 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
+              { # A message that can hold any of the supported value types.
+                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;booleanValue&quot;: True or False, # A boolean value.
+                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                &quot;doubleValue&quot;: 3.14, # A double value.
+                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
+                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                &quot;mapValue&quot;: { # A map value. # A map value.
+                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                    &quot;a_key&quot;: # Object with schema name: Value
+                  },
+                },
+                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+              },
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -717,11 +794,7 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -741,11 +814,7 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -766,7 +835,26 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
+              { # A message that can hold any of the supported value types.
+                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;booleanValue&quot;: True or False, # A boolean value.
+                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                &quot;doubleValue&quot;: 3.14, # A double value.
+                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
+                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                &quot;mapValue&quot;: { # A map value. # A map value.
+                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                    &quot;a_key&quot;: # Object with schema name: Value
+                  },
+                },
+                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+              },
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -790,11 +878,7 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -834,11 +918,7 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-        &quot;values&quot;: [ # Values in the array.
-          # Object with schema name: Value
-        ],
-      },
+      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -876,11 +956,7 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-        &quot;values&quot;: [ # Values in the array.
-          # Object with schema name: Value
-        ],
-      },
+      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -946,11 +1022,7 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-        &quot;values&quot;: [ # Values in the array.
-          # Object with schema name: Value
-        ],
-      },
+      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1003,11 +1075,7 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1117,11 +1185,7 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1169,11 +1233,7 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1207,11 +1267,7 @@
             },
             &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
             &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1264,11 +1320,7 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1354,11 +1406,7 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1406,11 +1454,7 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1444,11 +1488,7 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1493,11 +1533,7 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1549,11 +1585,7 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-        &quot;values&quot;: [ # Values in the array.
-          # Object with schema name: Value
-        ],
-      },
+      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1593,11 +1625,7 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-        &quot;values&quot;: [ # Values in the array.
-          # Object with schema name: Value
-        ],
-      },
+      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1671,11 +1699,7 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1723,11 +1747,7 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1761,11 +1781,7 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1809,11 +1825,7 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-          &quot;values&quot;: [ # Values in the array.
-            # Object with schema name: Value
-          ],
-        },
+        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1870,16 +1882,31 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
+                { # A message that can hold any of the supported value types.
+                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                  &quot;booleanValue&quot;: True or False, # A boolean value.
+                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                  &quot;doubleValue&quot;: 3.14, # A double value.
+                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                  },
+                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                  &quot;mapValue&quot;: { # A map value. # A map value.
+                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                      &quot;a_key&quot;: # Object with schema name: Value
+                    },
+                  },
+                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+                },
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1899,11 +1926,7 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1923,11 +1946,7 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;values&quot;: [ # Values in the array.
-                  # Object with schema name: Value
-                ],
-              },
+              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1948,7 +1967,26 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
+                { # A message that can hold any of the supported value types.
+                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                  &quot;booleanValue&quot;: True or False, # A boolean value.
+                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                  &quot;doubleValue&quot;: 3.14, # A double value.
+                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                  },
+                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                  &quot;mapValue&quot;: { # A map value. # A map value.
+                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                      &quot;a_key&quot;: # Object with schema name: Value
+                    },
+                  },
+                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+                },
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -1959,11 +1997,7 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1995,16 +2029,31 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
+              { # A message that can hold any of the supported value types.
+                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;booleanValue&quot;: True or False, # A boolean value.
+                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                &quot;doubleValue&quot;: 3.14, # A double value.
+                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
+                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                &quot;mapValue&quot;: { # A map value. # A map value.
+                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                    &quot;a_key&quot;: # Object with schema name: Value
+                  },
+                },
+                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+              },
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2024,11 +2073,7 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2048,11 +2093,7 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-              &quot;values&quot;: [ # Values in the array.
-                # Object with schema name: Value
-              ],
-            },
+            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2073,7 +2114,26 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
+              { # A message that can hold any of the supported value types.
+                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;booleanValue&quot;: True or False, # A boolean value.
+                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
+                &quot;doubleValue&quot;: 3.14, # A double value.
+                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+                },
+                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+                &quot;mapValue&quot;: { # A map value. # A map value.
+                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
+                    &quot;a_key&quot;: # Object with schema name: Value
+                  },
+                },
+                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
+                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
+                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
+              },
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -2099,11 +2159,7 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-            &quot;values&quot;: [ # Values in the array.
-              # Object with schema name: Value
-            ],
-          },
+          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
diff --git a/docs/dyn/firestore_v1.projects.databases.html b/docs/dyn/firestore_v1.projects.databases.html
index b277a4c..3e7fa3f 100644
--- a/docs/dyn/firestore_v1.projects.databases.html
+++ b/docs/dyn/firestore_v1.projects.databases.html
@@ -94,7 +94,7 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#exportDocuments">exportDocuments(name, body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.</p>
+<p class="firstline">Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage. For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import</p>
 <p class="toc_element">
   <code><a href="#importDocuments">importDocuments(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Imports documents into Google Cloud Firestore. Existing documents with the same name are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportDocuments operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Firestore.</p>
@@ -106,7 +106,7 @@
 
 <div class="method">
     <code class="details" id="exportDocuments">exportDocuments(name, body=None, x__xgafv=None)</code>
-  <pre>Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.
+  <pre>Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage. For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import
 
 Args:
   name: string, Required. Database to export. Should be of the form: `projects/{project_id}/databases/{database_id}`. (required)
diff --git a/docs/dyn/firestore_v1.projects.locations.html b/docs/dyn/firestore_v1.projects.locations.html
index 81776cd..4b4947f 100644
--- a/docs/dyn/firestore_v1.projects.locations.html
+++ b/docs/dyn/firestore_v1.projects.locations.html
@@ -125,9 +125,9 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/firestore_v1beta1.projects.databases.documents.html b/docs/dyn/firestore_v1beta1.projects.databases.documents.html
index ca54a2b..2a0e29b 100644
--- a/docs/dyn/firestore_v1beta1.projects.databases.documents.html
+++ b/docs/dyn/firestore_v1beta1.projects.databases.documents.html
@@ -175,7 +175,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -230,31 +234,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -274,7 +263,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -294,7 +287,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -315,26 +312,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -345,7 +323,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -377,31 +359,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -421,7 +388,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -441,7 +412,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -462,26 +437,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -515,7 +471,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -603,31 +563,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -647,7 +592,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -667,7 +616,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -688,26 +641,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -718,7 +652,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -750,31 +688,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -794,7 +717,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -814,7 +741,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -835,26 +766,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -878,7 +790,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -918,7 +834,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -956,7 +876,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1022,7 +946,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1075,7 +1003,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1185,7 +1117,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1233,7 +1169,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1267,7 +1207,11 @@
             },
             &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
             &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1320,7 +1264,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1406,7 +1354,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1454,7 +1406,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1488,7 +1444,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1533,7 +1493,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1585,7 +1549,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1625,7 +1593,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1699,7 +1671,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1747,7 +1723,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1781,7 +1761,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1825,7 +1809,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1882,31 +1870,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1926,7 +1899,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1946,7 +1923,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1967,26 +1948,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -1997,7 +1959,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2029,31 +1995,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2073,7 +2024,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2093,7 +2048,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2114,26 +2073,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -2159,7 +2099,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
diff --git a/docs/dyn/games_v1.html b/docs/dyn/games_v1.html
index 49e6983..7885e96 100644
--- a/docs/dyn/games_v1.html
+++ b/docs/dyn/games_v1.html
@@ -125,11 +125,6 @@
 <p class="firstline">Returns the snapshots Resource.</p>
 
 <p class="toc_element">
-  <code><a href="games_v1.snapshotsExtended.html">snapshotsExtended()</a></code>
-</p>
-<p class="firstline">Returns the snapshotsExtended Resource.</p>
-
-<p class="toc_element">
   <code><a href="games_v1.stats.html">stats()</a></code>
 </p>
 <p class="firstline">Returns the stats Resource.</p>
diff --git a/docs/dyn/gameservices_v1.projects.locations.html b/docs/dyn/gameservices_v1.projects.locations.html
index 1cad5b6..0af6f33 100644
--- a/docs/dyn/gameservices_v1.projects.locations.html
+++ b/docs/dyn/gameservices_v1.projects.locations.html
@@ -142,7 +142,7 @@
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
   includeUnrevealedLocations: boolean, If true, the returned list will include locations which are not yet revealed.
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/gkehub_v1.html b/docs/dyn/gkehub_v1.html
new file mode 100644
index 0000000..c498ec3
--- /dev/null
+++ b/docs/dyn/gkehub_v1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1.html">GKE Hub</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1.projects.html b/docs/dyn/gkehub_v1.projects.html
new file mode 100644
index 0000000..dad7860
--- /dev/null
+++ b/docs/dyn/gkehub_v1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1.html">GKE Hub</a> . <a href="gkehub_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1.projects.locations.html b/docs/dyn/gkehub_v1.projects.locations.html
new file mode 100644
index 0000000..1f8d32b
--- /dev/null
+++ b/docs/dyn/gkehub_v1.projects.locations.html
@@ -0,0 +1,181 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1.html">GKE Hub</a> . <a href="gkehub_v1.projects.html">projects</a> . <a href="gkehub_v1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1.projects.locations.memberships.html">memberships()</a></code>
+</p>
+<p class="firstline">Returns the memberships Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1.projects.locations.memberships.html b/docs/dyn/gkehub_v1.projects.locations.memberships.html
new file mode 100644
index 0000000..2246862
--- /dev/null
+++ b/docs/dyn/gkehub_v1.projects.locations.memberships.html
@@ -0,0 +1,624 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1.html">GKE Hub</a> . <a href="gkehub_v1.projects.html">projects</a> . <a href="gkehub_v1.projects.locations.html">locations</a> . <a href="gkehub_v1.projects.locations.memberships.html">memberships</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, membershipId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Adds a new Membership.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes a Membership.</p>
+<p class="toc_element">
+  <code><a href="#generateConnectManifest">generateConnectManifest(name, imagePullSecretContent=None, isUpgrade=None, namespace=None, proxy=None, registry=None, version=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generates the manifest for deployment of the GKE connect agent.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a Membership.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Memberships in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Membership.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, membershipId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Adds a new Membership.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by `/version`.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}
+
+  membershipId: string, Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Removes a Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generateConnectManifest">generateConnectManifest(name, imagePullSecretContent=None, isUpgrade=None, namespace=None, proxy=None, registry=None, version=None, x__xgafv=None)</code>
+  <pre>Generates the manifest for deployment of the GKE connect agent.
+
+Args:
+  name: string, Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`. (required)
+  imagePullSecretContent: string, Optional. The image pull secret content for the registry, if not public.
+  isUpgrade: boolean, Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.
+  namespace: string, Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.
+  proxy: string, Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent&#x27;s outbound traffic through a HTTP(S) proxy.
+  registry: string, Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.
+  version: string, Optional. The Connect agent version to use. Defaults to the most current version.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.
+  &quot;manifest&quot;: [ # The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.
+    { # ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.
+      &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+      &quot;type&quot;: { # TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest. # Kubernetes type of the resource.
+        &quot;apiVersion&quot;: &quot;A String&quot;, # APIVersion of the resource (e.g. v1).
+        &quot;kind&quot;: &quot;A String&quot;, # Kind of the resource (e.g. Deployment).
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by `/version`.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Memberships in a given project and location.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. (required)
+  filter: string, Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = &quot;projects/foo-proj/locations/global/membership/bar&quot; - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING
+  orderBy: string, Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.
+  pageSize: integer, Optional. When requesting a &#x27;page&#x27; of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.
+  pageToken: string, Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the `GkeHub.ListMemberships` method.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.
+  &quot;resources&quot;: [ # The list of matching Memberships.
+    { # Membership contains information about a member cluster.
+      &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+        &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+        &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+        &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+      &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+      &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+        &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+          &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+        },
+        &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+          &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by `/version`.
+          &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+          &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+          &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+          &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+        },
+      },
+      &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+      &quot;labels&quot;: { # Optional. GCP labels for this membership.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+      &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+        &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+      },
+      &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+    },
+  ],
+  &quot;unreachable&quot;: [ # List of locations that could not be reached while fetching this list.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by `/version`.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}
+
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  updateMask: string, Required. Mask of fields to update.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1.projects.locations.operations.html b/docs/dyn/gkehub_v1.projects.locations.operations.html
new file mode 100644
index 0000000..c8fe208
--- /dev/null
+++ b/docs/dyn/gkehub_v1.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1.html">GKE Hub</a> . <a href="gkehub_v1.projects.html">projects</a> . <a href="gkehub_v1.projects.locations.html">locations</a> . <a href="gkehub_v1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.html b/docs/dyn/gkehub_v1alpha.html
new file mode 100644
index 0000000..5c5f483
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.html b/docs/dyn/gkehub_v1alpha.projects.html
new file mode 100644
index 0000000..42ce1ad
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.locations.features.html b/docs/dyn/gkehub_v1alpha.projects.locations.features.html
new file mode 100644
index 0000000..70468df
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.locations.features.html
@@ -0,0 +1,258 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a> . <a href="gkehub_v1alpha.projects.locations.features.html">features</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.locations.global_.features.html b/docs/dyn/gkehub_v1alpha.projects.locations.global_.features.html
new file mode 100644
index 0000000..5bd8d3a
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.locations.global_.features.html
@@ -0,0 +1,1226 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a> . <a href="gkehub_v1alpha.projects.locations.global_.html">global_</a> . <a href="gkehub_v1alpha.projects.locations.global_.features.html">features</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, featureId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Adds a new Feature.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, force=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes a Feature.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single Feature.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Features in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Feature.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, featureId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Adds a new Feature.
+
+Args:
+  parent: string, The parent (project and location) where the Feature will be created. Specified in the format `projects/*/locations/global`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Feature represents the settings and status of any Hub Feature.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+  &quot;labels&quot;: { # GCP labels for this Feature.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+        },
+        &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+          &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+            &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+            &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+            &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+            &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+            &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+            &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+          },
+          &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+        },
+        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+        },
+        &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+            &quot;A String&quot;,
+          ],
+          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+      },
+    },
+  },
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+      &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+        &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+          &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+            &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+          },
+          &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+        },
+        &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+        &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+          &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+            &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+          },
+          &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+            &quot;code&quot;: &quot;A String&quot;, # Sync status code
+            &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+              { # An ACM created error representing a problem syncing configurations
+                &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                  { # Model for a config file in the git repo with an associated Sync error
+                    &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                      &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                      &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                      &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                    },
+                    &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                    &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                    &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                  },
+                ],
+              },
+            ],
+            &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+            &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+            &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+            &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+            &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+          },
+          &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+            &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+          },
+        },
+        &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+          &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+            &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+          },
+          &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+            &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+          },
+        },
+        &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+          &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+          },
+          &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+            &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+              &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+              &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+              &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+              &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+              &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+              &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+            },
+            &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+          },
+          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+          },
+          &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+              &quot;A String&quot;,
+            ],
+            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+        },
+        &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+          &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+          &quot;errors&quot;: [ # Install errors.
+            { # Errors pertaining to the installation of ACM
+              &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+            },
+          ],
+          &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+        },
+        &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+          &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+            &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+            &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+          },
+          &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+            &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+          },
+        },
+      },
+      &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+        &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+        &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+      },
+      &quot;servicemesh&quot;: { # MembershipState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for single Membership. # Service Mesh-specific state.
+        &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+          { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+            &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+            &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+              &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+              &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+              &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+                &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+                &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+              },
+            },
+            &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+              &quot;A String&quot;,
+            ],
+          },
+        ],
+      },
+      &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+        &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+        &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+        &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+  &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+    &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+  },
+  &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+    &quot;cloudauditlogging&quot;: { # Spec for Audit Logging Allowlisting. # Cloud Audit Logging-specific spec.
+      &quot;allowlistedServiceAccounts&quot;: [ # Service account that should be allowlisted to send the audit logs; eg cloudauditlogging@gcp-project.iam.gserviceaccount.com. These accounts must already exist, but do not need to have any permissions granted to them. The customer&#x27;s entitlements will be checked prior to allowlisting (i.e. the customer must be an Anthos customer.)
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+      &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+    },
+  },
+  &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+    &quot;servicemesh&quot;: { # FeatureState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for the whole Hub. # Service Mesh-specific state.
+      &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+        { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+          &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+          &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+            &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+            &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+            &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+              &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+              &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+            },
+          },
+          &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+    &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+}
+
+  featureId: string, The ID of the feature to create.
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, force=None, requestId=None, x__xgafv=None)</code>
+  <pre>Removes a Feature.
+
+Args:
+  name: string, The Feature resource name in the format `projects/*/locations/global/features/*`. (required)
+  force: boolean, If set to true, the delete will ignore any outstanding resources for this Feature (that is, `FeatureState.has_resources` is set to true). These resources will NOT be cleaned up or modified in any way.
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single Feature.
+
+Args:
+  name: string, The Feature resource name in the format `projects/*/locations/global/features/*` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Feature represents the settings and status of any Hub Feature.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+  &quot;labels&quot;: { # GCP labels for this Feature.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+        },
+        &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+          &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+            &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+            &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+            &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+            &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+            &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+            &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+          },
+          &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+        },
+        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+        },
+        &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+            &quot;A String&quot;,
+          ],
+          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+      },
+    },
+  },
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+      &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+        &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+          &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+            &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+          },
+          &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+        },
+        &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+        &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+          &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+            &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+          },
+          &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+            &quot;code&quot;: &quot;A String&quot;, # Sync status code
+            &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+              { # An ACM created error representing a problem syncing configurations
+                &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                  { # Model for a config file in the git repo with an associated Sync error
+                    &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                      &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                      &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                      &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                    },
+                    &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                    &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                    &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                  },
+                ],
+              },
+            ],
+            &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+            &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+            &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+            &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+            &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+          },
+          &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+            &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+          },
+        },
+        &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+          &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+            &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+          },
+          &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+            &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+          },
+        },
+        &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+          &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+          },
+          &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+            &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+              &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+              &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+              &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+              &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+              &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+              &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+            },
+            &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+          },
+          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+          },
+          &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+              &quot;A String&quot;,
+            ],
+            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+        },
+        &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+          &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+          &quot;errors&quot;: [ # Install errors.
+            { # Errors pertaining to the installation of ACM
+              &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+            },
+          ],
+          &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+        },
+        &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+          &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+            &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+            &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+          },
+          &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+            &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+          },
+        },
+      },
+      &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+        &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+        &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+      },
+      &quot;servicemesh&quot;: { # MembershipState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for single Membership. # Service Mesh-specific state.
+        &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+          { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+            &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+            &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+              &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+              &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+              &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+                &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+                &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+              },
+            },
+            &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+              &quot;A String&quot;,
+            ],
+          },
+        ],
+      },
+      &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+        &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+        &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+        &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+  &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+    &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+  },
+  &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+    &quot;cloudauditlogging&quot;: { # Spec for Audit Logging Allowlisting. # Cloud Audit Logging-specific spec.
+      &quot;allowlistedServiceAccounts&quot;: [ # Service account that should be allowlisted to send the audit logs; eg cloudauditlogging@gcp-project.iam.gserviceaccount.com. These accounts must already exist, but do not need to have any permissions granted to them. The customer&#x27;s entitlements will be checked prior to allowlisting (i.e. the customer must be an Anthos customer.)
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+      &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+    },
+  },
+  &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+    &quot;servicemesh&quot;: { # FeatureState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for the whole Hub. # Service Mesh-specific state.
+      &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+        { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+          &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+          &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+            &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+            &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+            &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+              &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+              &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+            },
+          },
+          &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+    &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Features in a given project and location.
+
+Args:
+  parent: string, The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/global`. (required)
+  filter: string, Lists Features that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Feature with the name &quot;servicemesh&quot; in project &quot;foo-proj&quot;: name = &quot;projects/foo-proj/locations/global/features/servicemesh&quot; - Features that have a label called `foo`: labels.foo:* - Features that have a label called `foo` whose value is `bar`: labels.foo = bar
+  orderBy: string, One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.
+  pageSize: integer, When requesting a &#x27;page&#x27; of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.
+  pageToken: string, Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the `GkeHub.ListFeatures` method.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of resources from the `ListFeatures` method. The value of an empty string means that there are no more resources to return.
+  &quot;resources&quot;: [ # The list of matching Features
+    { # Feature represents the settings and status of any Hub Feature.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+      &quot;labels&quot;: { # GCP labels for this Feature.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+        &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+          &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+            &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+              &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+            },
+            &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+              &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+                &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+                &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+                &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+                &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+                &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+                &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+                &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+                &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+              },
+              &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+            },
+            &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+              &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+              &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+              &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+            },
+            &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+              &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+              &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+              &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+                &quot;A String&quot;,
+              ],
+              &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+              &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+              &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+            },
+            &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+          },
+        },
+      },
+      &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+        &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+          &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+            &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+              &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+                &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+              },
+              &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+            },
+            &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+            &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+              &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+                &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+                &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+                &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+                &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+                &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+                &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+              },
+              &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+                &quot;code&quot;: &quot;A String&quot;, # Sync status code
+                &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+                  { # An ACM created error representing a problem syncing configurations
+                    &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                    &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                    &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                      { # Model for a config file in the git repo with an associated Sync error
+                        &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                          &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                          &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                          &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                        },
+                        &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                        &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                        &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                      },
+                    ],
+                  },
+                ],
+                &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+                &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+                &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+                &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+                &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+              },
+              &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+                &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+                &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+                &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+                &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+                &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+                &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+              },
+            },
+            &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+              &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+                &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+                &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+              },
+              &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+                &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+                &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+              },
+            },
+            &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+              &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+                &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+              },
+              &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+                &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+                  &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+                  &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+                  &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+                  &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+                  &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+                  &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+                  &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+                  &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+                },
+                &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+              },
+              &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+                &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+                &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+                &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+              },
+              &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+                &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+                &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+                &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+                  &quot;A String&quot;,
+                ],
+                &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+                &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+                &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+              },
+              &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+            },
+            &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+              &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+              &quot;errors&quot;: [ # Install errors.
+                { # Errors pertaining to the installation of ACM
+                  &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+                },
+              ],
+              &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+            },
+            &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+              &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+                &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+                &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+              },
+              &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+                &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+              },
+            },
+          },
+          &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+            &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+            &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+          },
+          &quot;servicemesh&quot;: { # MembershipState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for single Membership. # Service Mesh-specific state.
+            &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+              { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+                &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+                  &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+                },
+                &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+                &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+                  &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+                  &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+                  &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+                    &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+                    &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+                  },
+                },
+                &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+                  &quot;A String&quot;,
+                ],
+              },
+            ],
+          },
+          &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+            &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+            &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+            &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+          },
+        },
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+      &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+        &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+      },
+      &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+        &quot;cloudauditlogging&quot;: { # Spec for Audit Logging Allowlisting. # Cloud Audit Logging-specific spec.
+          &quot;allowlistedServiceAccounts&quot;: [ # Service account that should be allowlisted to send the audit logs; eg cloudauditlogging@gcp-project.iam.gserviceaccount.com. These accounts must already exist, but do not need to have any permissions granted to them. The customer&#x27;s entitlements will be checked prior to allowlisting (i.e. the customer must be an Anthos customer.)
+            &quot;A String&quot;,
+          ],
+        },
+        &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+          &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+        },
+      },
+      &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+        &quot;servicemesh&quot;: { # FeatureState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for the whole Hub. # Service Mesh-specific state.
+          &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+            { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+              &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+                &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+              },
+              &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+              &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+                &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+                &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+                &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+                  &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+                  &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+                },
+              },
+              &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+                &quot;A String&quot;,
+              ],
+            },
+          ],
+        },
+        &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+          &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+          &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+          &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+        },
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Feature.
+
+Args:
+  name: string, The Feature resource name in the format `projects/*/locations/global/features/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Feature represents the settings and status of any Hub Feature.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+  &quot;labels&quot;: { # GCP labels for this Feature.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+        },
+        &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+          &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+            &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+            &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+            &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+            &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+            &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+            &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+          },
+          &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+        },
+        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+        },
+        &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+            &quot;A String&quot;,
+          ],
+          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+      },
+    },
+  },
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+      &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+        &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+          &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+            &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+          },
+          &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+        },
+        &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+        &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+          &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+            &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+          },
+          &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+            &quot;code&quot;: &quot;A String&quot;, # Sync status code
+            &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+              { # An ACM created error representing a problem syncing configurations
+                &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                  { # Model for a config file in the git repo with an associated Sync error
+                    &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                      &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                      &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                      &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                    },
+                    &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                    &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                    &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                  },
+                ],
+              },
+            ],
+            &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+            &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+            &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+            &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+            &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+          },
+          &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+            &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+          },
+        },
+        &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+          &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+            &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+          },
+          &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+            &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+          },
+        },
+        &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+          &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+          },
+          &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+            &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+              &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+              &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+              &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+              &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+              &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+              &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+            },
+            &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+          },
+          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+          },
+          &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+              &quot;A String&quot;,
+            ],
+            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+        },
+        &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+          &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+          &quot;errors&quot;: [ # Install errors.
+            { # Errors pertaining to the installation of ACM
+              &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+            },
+          ],
+          &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+        },
+        &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+          &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+            &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+            &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+          },
+          &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+            &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+          },
+        },
+      },
+      &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+        &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+        &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+      },
+      &quot;servicemesh&quot;: { # MembershipState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for single Membership. # Service Mesh-specific state.
+        &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+          { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+            &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+            },
+            &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+            &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+              &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+              &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+              &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+                &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+                &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+              },
+            },
+            &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+              &quot;A String&quot;,
+            ],
+          },
+        ],
+      },
+      &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+        &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+        &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+        &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+  &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+    &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+  },
+  &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+    &quot;cloudauditlogging&quot;: { # Spec for Audit Logging Allowlisting. # Cloud Audit Logging-specific spec.
+      &quot;allowlistedServiceAccounts&quot;: [ # Service account that should be allowlisted to send the audit logs; eg cloudauditlogging@gcp-project.iam.gserviceaccount.com. These accounts must already exist, but do not need to have any permissions granted to them. The customer&#x27;s entitlements will be checked prior to allowlisting (i.e. the customer must be an Anthos customer.)
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+      &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+    },
+  },
+  &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+    &quot;servicemesh&quot;: { # FeatureState describes the state of the Service Mesh Hub Feature as analyzed by the Service Mesh Hub Controller, for the whole Hub. # Service Mesh-specific state.
+      &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
+        { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
+          &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
+          },
+          &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
+          &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
+            &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
+            &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
+            &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
+              &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
+              &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
+            },
+          },
+          &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+    &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+}
+
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  updateMask: string, Mask of fields to update.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.locations.global_.html b/docs/dyn/gkehub_v1alpha.projects.locations.global_.html
new file mode 100644
index 0000000..8d59dd4
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.locations.global_.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a> . <a href="gkehub_v1alpha.projects.locations.global_.html">global_</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.locations.global_.features.html">features()</a></code>
+</p>
+<p class="firstline">Returns the features Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.locations.html b/docs/dyn/gkehub_v1alpha.projects.locations.html
new file mode 100644
index 0000000..870fa9b
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.locations.html
@@ -0,0 +1,191 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.locations.features.html">features()</a></code>
+</p>
+<p class="firstline">Returns the features Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.locations.global_.html">global_()</a></code>
+</p>
+<p class="firstline">Returns the global_ Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.locations.memberships.html">memberships()</a></code>
+</p>
+<p class="firstline">Returns the memberships Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.locations.memberships.html b/docs/dyn/gkehub_v1alpha.projects.locations.memberships.html
new file mode 100644
index 0000000..90fd97e
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.locations.memberships.html
@@ -0,0 +1,258 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a> . <a href="gkehub_v1alpha.projects.locations.memberships.html">memberships</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha.projects.locations.operations.html b/docs/dyn/gkehub_v1alpha.projects.locations.operations.html
new file mode 100644
index 0000000..99f68d1
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha.html">GKE Hub</a> . <a href="gkehub_v1alpha.projects.html">projects</a> . <a href="gkehub_v1alpha.projects.locations.html">locations</a> . <a href="gkehub_v1alpha.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.html b/docs/dyn/gkehub_v1alpha2.html
new file mode 100644
index 0000000..167e045
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha2.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.projects.html b/docs/dyn/gkehub_v1alpha2.projects.html
new file mode 100644
index 0000000..3032d5e
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a> . <a href="gkehub_v1alpha2.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha2.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.projects.locations.global_.html b/docs/dyn/gkehub_v1alpha2.projects.locations.global_.html
new file mode 100644
index 0000000..da72384
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.projects.locations.global_.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a> . <a href="gkehub_v1alpha2.projects.html">projects</a> . <a href="gkehub_v1alpha2.projects.locations.html">locations</a> . <a href="gkehub_v1alpha2.projects.locations.global_.html">global_</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha2.projects.locations.global_.memberships.html">memberships()</a></code>
+</p>
+<p class="firstline">Returns the memberships Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.projects.locations.global_.memberships.html b/docs/dyn/gkehub_v1alpha2.projects.locations.global_.memberships.html
new file mode 100644
index 0000000..82c7515
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.projects.locations.global_.memberships.html
@@ -0,0 +1,115 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a> . <a href="gkehub_v1alpha2.projects.html">projects</a> . <a href="gkehub_v1alpha2.projects.locations.html">locations</a> . <a href="gkehub_v1alpha2.projects.locations.global_.html">global_</a> . <a href="gkehub_v1alpha2.projects.locations.global_.memberships.html">memberships</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#initializeHub">initializeHub(project, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Initializes the Hub in this project, which includes creating the default Hub Service Account and the Hub Workload Identity Pool. Initialization is optional, and happens automatically when the first Membership is created. InitializeHub should be called when the first Membership cannot be registered without these resources. A common example is granting the Hub Service Account access to another project, which requires the account to exist first.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="initializeHub">initializeHub(project, body=None, x__xgafv=None)</code>
+  <pre>Initializes the Hub in this project, which includes creating the default Hub Service Account and the Hub Workload Identity Pool. Initialization is optional, and happens automatically when the first Membership is created. InitializeHub should be called when the first Membership cannot be registered without these resources. A common example is granting the Hub Service Account access to another project, which requires the account to exist first.
+
+Args:
+  project: string, Required. The Hub to initialize, in the format `projects/*/locations/*/memberships/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the InitializeHub method.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the InitializeHub method.
+  &quot;serviceIdentity&quot;: &quot;A String&quot;, # Name of the Hub default service identity, in the format: service-@gcp-sa-gkehub.iam.gserviceaccount.com The service account has `roles/gkehub.serviceAgent` in the Hub project.
+  &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # The Workload Identity Pool used for Workload Identity-enabled clusters registered with this Hub. Format: `.hub.id.goog`
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.projects.locations.html b/docs/dyn/gkehub_v1alpha2.projects.locations.html
new file mode 100644
index 0000000..bbd99de
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.projects.locations.html
@@ -0,0 +1,186 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a> . <a href="gkehub_v1alpha2.projects.html">projects</a> . <a href="gkehub_v1alpha2.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha2.projects.locations.global_.html">global_()</a></code>
+</p>
+<p class="firstline">Returns the global_ Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha2.projects.locations.memberships.html">memberships()</a></code>
+</p>
+<p class="firstline">Returns the memberships Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1alpha2.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.projects.locations.memberships.html b/docs/dyn/gkehub_v1alpha2.projects.locations.memberships.html
new file mode 100644
index 0000000..7ab8ed2
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.projects.locations.memberships.html
@@ -0,0 +1,705 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a> . <a href="gkehub_v1alpha2.projects.html">projects</a> . <a href="gkehub_v1alpha2.projects.locations.html">locations</a> . <a href="gkehub_v1alpha2.projects.locations.memberships.html">memberships</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, membershipId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Adds a new Membership.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes a Membership.</p>
+<p class="toc_element">
+  <code><a href="#generateConnectManifest">generateConnectManifest(name, imagePullSecretContent=None, isUpgrade=None, namespace=None, proxy=None, registry=None, version=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generates the manifest for deployment of the GKE connect agent.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a Membership.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Memberships in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Membership.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, membershipId=None, x__xgafv=None)</code>
+  <pre>Adds a new Membership.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer, unless `oidc_jwks` is set. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships that are created from Kubernetes Endpoints (currently, these are equivalent to Kubernetes clusters). # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+    &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+      &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during Create or Update, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+      &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+        &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+        &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+      },
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}
+
+  membershipId: string, Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Removes a Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generateConnectManifest">generateConnectManifest(name, imagePullSecretContent=None, isUpgrade=None, namespace=None, proxy=None, registry=None, version=None, x__xgafv=None)</code>
+  <pre>Generates the manifest for deployment of the GKE connect agent.
+
+Args:
+  name: string, Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`. (required)
+  imagePullSecretContent: string, Optional. The image pull secret content for the registry, if not public.
+  isUpgrade: boolean, Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.
+  namespace: string, Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.
+  proxy: string, Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent&#x27;s outbound traffic through a HTTP(S) proxy.
+  registry: string, Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.
+  version: string, Optional. The Connect agent version to use. Defaults to the most current version.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.
+  &quot;manifest&quot;: [ # The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.
+    { # ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.
+      &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+      &quot;type&quot;: { # TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest. # Kubernetes type of the resource.
+        &quot;apiVersion&quot;: &quot;A String&quot;, # APIVersion of the resource (e.g. v1).
+        &quot;kind&quot;: &quot;A String&quot;, # Kind of the resource (e.g. Deployment).
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer, unless `oidc_jwks` is set. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships that are created from Kubernetes Endpoints (currently, these are equivalent to Kubernetes clusters). # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+    &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+      &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during Create or Update, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+      &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+        &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+        &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+      },
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Memberships in a given project and location.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. (required)
+  filter: string, Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = &quot;projects/foo-proj/locations/global/membership/bar&quot; - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING
+  orderBy: string, Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.
+  pageSize: integer, Optional. When requesting a &#x27;page&#x27; of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.
+  pageToken: string, Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the `GkeHub.ListMemberships` method.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.
+  &quot;resources&quot;: [ # The list of matching Memberships.
+    { # Membership contains information about a member cluster.
+      &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+        &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+        &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer, unless `oidc_jwks` is set. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+        &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+        &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+      &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+      &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+        &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+          &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+        },
+        &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships that are created from Kubernetes Endpoints (currently, these are equivalent to Kubernetes clusters). # Output only. Useful Kubernetes-specific metadata.
+          &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+          &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+          &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+          &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+          &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+        },
+        &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+          &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+            { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+              &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+              &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+            },
+          ],
+          &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during Create or Update, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+          &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+            { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+              &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+              &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+            },
+          ],
+          &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+            &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+            &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+          },
+        },
+      },
+      &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+      &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+      &quot;labels&quot;: { # Optional. GCP labels for this membership.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+      &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+        &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+      },
+      &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+    },
+  ],
+  &quot;unreachable&quot;: [ # List of locations that could not be reached while fetching this list.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer, unless `oidc_jwks` is set. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships that are created from Kubernetes Endpoints (currently, these are equivalent to Kubernetes clusters). # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+    &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+      &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during Create or Update, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+      &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+        &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+        &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+      },
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # MembershipState describes the state of a Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}
+
+  updateMask: string, Required. Mask of fields to update.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1alpha2.projects.locations.operations.html b/docs/dyn/gkehub_v1alpha2.projects.locations.operations.html
new file mode 100644
index 0000000..124280d
--- /dev/null
+++ b/docs/dyn/gkehub_v1alpha2.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1alpha2.html">GKE Hub</a> . <a href="gkehub_v1alpha2.projects.html">projects</a> . <a href="gkehub_v1alpha2.projects.locations.html">locations</a> . <a href="gkehub_v1alpha2.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.html b/docs/dyn/gkehub_v1beta.html
new file mode 100644
index 0000000..b3a071e
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.html b/docs/dyn/gkehub_v1beta.projects.html
new file mode 100644
index 0000000..5f8d5be
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.features.html b/docs/dyn/gkehub_v1beta.projects.locations.features.html
new file mode 100644
index 0000000..fd01813
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.locations.features.html
@@ -0,0 +1,258 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a> . <a href="gkehub_v1beta.projects.locations.html">locations</a> . <a href="gkehub_v1beta.projects.locations.features.html">features</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html b/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html
new file mode 100644
index 0000000..5c61bea
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.locations.global_.features.html
@@ -0,0 +1,1038 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a> . <a href="gkehub_v1beta.projects.locations.html">locations</a> . <a href="gkehub_v1beta.projects.locations.global_.html">global_</a> . <a href="gkehub_v1beta.projects.locations.global_.features.html">features</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, featureId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Adds a new Feature.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, force=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes a Feature.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single Feature.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Features in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Feature.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, featureId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Adds a new Feature.
+
+Args:
+  parent: string, The parent (project and location) where the Feature will be created. Specified in the format `projects/*/locations/global`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Feature represents the settings and status of any Hub Feature.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+  &quot;labels&quot;: { # GCP labels for this Feature.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+        },
+        &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+          &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+            &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+            &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+            &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+            &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+            &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+            &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+          },
+          &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+        },
+        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+        },
+        &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+            &quot;A String&quot;,
+          ],
+          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+      },
+    },
+  },
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+      &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+        &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+          &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+            &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+          },
+          &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+        },
+        &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+        &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+          &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+            &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+          },
+          &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+            &quot;code&quot;: &quot;A String&quot;, # Sync status code
+            &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+              { # An ACM created error representing a problem syncing configurations
+                &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                  { # Model for a config file in the git repo with an associated Sync error
+                    &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                      &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                      &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                      &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                    },
+                    &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                    &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                    &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                  },
+                ],
+              },
+            ],
+            &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+            &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+            &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+            &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+            &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+          },
+          &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+            &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+          },
+        },
+        &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+          &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+            &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+          },
+          &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+            &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+          },
+        },
+        &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+          &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+          },
+          &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+            &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+              &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+              &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+              &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+              &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+              &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+              &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+            },
+            &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+          },
+          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+          },
+          &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+              &quot;A String&quot;,
+            ],
+            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+        },
+        &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+          &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+          &quot;errors&quot;: [ # Install errors.
+            { # Errors pertaining to the installation of ACM
+              &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+            },
+          ],
+          &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+        },
+        &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+          &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+            &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+            &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+          },
+          &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+            &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+          },
+        },
+      },
+      &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+        &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+        &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+      },
+      &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+        &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+        &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+        &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+  &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+    &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+  },
+  &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+    &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+      &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+    },
+  },
+  &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+    &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+}
+
+  featureId: string, The ID of the feature to create.
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, force=None, requestId=None, x__xgafv=None)</code>
+  <pre>Removes a Feature.
+
+Args:
+  name: string, The Feature resource name in the format `projects/*/locations/global/features/*`. (required)
+  force: boolean, If set to true, the delete will ignore any outstanding resources for this Feature (that is, `FeatureState.has_resources` is set to true). These resources will NOT be cleaned up or modified in any way.
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single Feature.
+
+Args:
+  name: string, The Feature resource name in the format `projects/*/locations/global/features/*` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Feature represents the settings and status of any Hub Feature.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+  &quot;labels&quot;: { # GCP labels for this Feature.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+        },
+        &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+          &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+            &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+            &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+            &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+            &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+            &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+            &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+          },
+          &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+        },
+        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+        },
+        &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+            &quot;A String&quot;,
+          ],
+          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+      },
+    },
+  },
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+      &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+        &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+          &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+            &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+          },
+          &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+        },
+        &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+        &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+          &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+            &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+          },
+          &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+            &quot;code&quot;: &quot;A String&quot;, # Sync status code
+            &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+              { # An ACM created error representing a problem syncing configurations
+                &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                  { # Model for a config file in the git repo with an associated Sync error
+                    &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                      &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                      &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                      &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                    },
+                    &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                    &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                    &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                  },
+                ],
+              },
+            ],
+            &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+            &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+            &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+            &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+            &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+          },
+          &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+            &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+          },
+        },
+        &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+          &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+            &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+          },
+          &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+            &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+          },
+        },
+        &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+          &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+          },
+          &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+            &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+              &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+              &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+              &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+              &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+              &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+              &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+            },
+            &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+          },
+          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+          },
+          &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+              &quot;A String&quot;,
+            ],
+            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+        },
+        &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+          &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+          &quot;errors&quot;: [ # Install errors.
+            { # Errors pertaining to the installation of ACM
+              &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+            },
+          ],
+          &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+        },
+        &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+          &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+            &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+            &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+          },
+          &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+            &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+          },
+        },
+      },
+      &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+        &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+        &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+      },
+      &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+        &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+        &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+        &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+  &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+    &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+  },
+  &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+    &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+      &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+    },
+  },
+  &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+    &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Features in a given project and location.
+
+Args:
+  parent: string, The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/global`. (required)
+  filter: string, Lists Features that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Feature with the name &quot;servicemesh&quot; in project &quot;foo-proj&quot;: name = &quot;projects/foo-proj/locations/global/features/servicemesh&quot; - Features that have a label called `foo`: labels.foo:* - Features that have a label called `foo` whose value is `bar`: labels.foo = bar
+  orderBy: string, One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.
+  pageSize: integer, When requesting a &#x27;page&#x27; of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.
+  pageToken: string, Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the `GkeHub.ListFeatures` method.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of resources from the `ListFeatures` method. The value of an empty string means that there are no more resources to return.
+  &quot;resources&quot;: [ # The list of matching Features
+    { # Feature represents the settings and status of any Hub Feature.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+      &quot;labels&quot;: { # GCP labels for this Feature.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+        &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+          &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+            &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+              &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+            },
+            &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+              &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+                &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+                &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+                &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+                &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+                &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+                &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+                &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+                &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+              },
+              &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+            },
+            &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+              &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+              &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+              &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+            },
+            &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+              &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+              &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+              &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+                &quot;A String&quot;,
+              ],
+              &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+              &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+              &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+            },
+            &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+          },
+        },
+      },
+      &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+        &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+          &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+            &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+              &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+                &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+              },
+              &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+            },
+            &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+            &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+              &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+                &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+                &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+                &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+                &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+                &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+                &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+              },
+              &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+                &quot;code&quot;: &quot;A String&quot;, # Sync status code
+                &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+                  { # An ACM created error representing a problem syncing configurations
+                    &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                    &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                    &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                      { # Model for a config file in the git repo with an associated Sync error
+                        &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                          &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                          &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                          &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                        },
+                        &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                        &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                        &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                      },
+                    ],
+                  },
+                ],
+                &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+                &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+                &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+                &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+                &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+              },
+              &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+                &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+                &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+                &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+                &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+                &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+                &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+              },
+            },
+            &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+              &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+                &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+                &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+              },
+              &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+                &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+                &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+              },
+            },
+            &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+              &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+                &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+              },
+              &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+                &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+                  &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+                  &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+                  &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+                  &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+                  &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+                  &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+                  &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+                  &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+                },
+                &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+              },
+              &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+                &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+                &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+                &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+              },
+              &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+                &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+                &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+                &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+                  &quot;A String&quot;,
+                ],
+                &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+                &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+                &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+              },
+              &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+            },
+            &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+              &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+              &quot;errors&quot;: [ # Install errors.
+                { # Errors pertaining to the installation of ACM
+                  &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+                },
+              ],
+              &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+            },
+            &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+              &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+                &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+                &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+              },
+              &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+                &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+              },
+            },
+          },
+          &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+            &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+            &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+          },
+          &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+            &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+            &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+            &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+          },
+        },
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+      &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+        &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+      },
+      &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+        &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+          &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+        },
+      },
+      &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+        &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+          &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+          &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+          &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+        },
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Feature.
+
+Args:
+  name: string, The Feature resource name in the format `projects/*/locations/global/features/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Feature represents the settings and status of any Hub Feature.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was deleted.
+  &quot;labels&quot;: { # GCP labels for this Feature.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
+      &quot;configmanagement&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
+        &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+        },
+        &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+          &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+            &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+            &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+            &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+            &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+            &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+            &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+          },
+          &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+        },
+        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+        },
+        &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+            &quot;A String&quot;,
+          ],
+          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+      },
+    },
+  },
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+    &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
+      &quot;configmanagement&quot;: { # State for Anthos Config Management # Config Management-specific state.
+        &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
+          &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
+            &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
+          },
+          &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
+        },
+        &quot;clusterName&quot;: &quot;A String&quot;, # The user-defined name for the cluster used by ClusterSelectors to group clusters together. This should match Membership&#x27;s membership_name, unless the user installed ACM on the cluster manually prior to enabling the ACM hub feature. Unique within a Anthos Config Management installation.
+        &quot;configSyncState&quot;: { # State information for ConfigSync # Current sync status
+          &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster # Information about the deployment of ConfigSync, including the version of the various Pods deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler
+            &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod
+          },
+          &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster # The state of ConfigSync&#x27;s process to sync configs to a cluster
+            &quot;code&quot;: &quot;A String&quot;, # Sync status code
+            &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
+              { # An ACM created error representing a problem syncing configurations
+                &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
+                &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
+                &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
+                  { # Model for a config file in the git repo with an associated Sync error
+                    &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK # Group/version/kind of the resource that is causing an error
+                      &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
+                      &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
+                      &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
+                    },
+                    &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
+                    &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
+                    &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
+                  },
+                ],
+              },
+            ],
+            &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
+            &quot;lastSync&quot;: &quot;A String&quot;, # Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String This field is being deprecated. Use last_sync_time instead. (b/154053616)
+            &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo
+            &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
+            &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
+          },
+          &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods # The version of ConfigSync deployed
+            &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod
+            &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod
+            &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod
+            &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod
+            &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod
+            &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod
+          },
+        },
+        &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller # Hierarchy Controller status
+          &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)
+            &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0)
+          },
+          &quot;version&quot;: { # Version for Hierarchy Controller # The version for Hierarchy Controller
+            &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension
+            &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC
+          },
+        },
+        &quot;membershipSpec&quot;: { # Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state
+          &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
+            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
+          },
+          &quot;configSync&quot;: { # Configuration for Config Sync # Config Sync configuration for the cluster.
+            &quot;git&quot;: { # Git repo configuration for a single cluster. # Git repo configuration for the cluster.
+              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.
+              &quot;httpsProxy&quot;: &quot;A String&quot;, # URL for the HTTPS proxy to be used when communicating with the Git repo.
+              &quot;policyDir&quot;: &quot;A String&quot;, # The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
+              &quot;secretType&quot;: &quot;A String&quot;, # Type of secret configured for access to the Git repo.
+              &quot;syncBranch&quot;: &quot;A String&quot;, # The branch of the repository to sync from. Default: master.
+              &quot;syncRepo&quot;: &quot;A String&quot;, # The URL of the Git repository to use as the source of truth.
+              &quot;syncRev&quot;: &quot;A String&quot;, # Git revision (tag or hash) to check out. Default HEAD.
+              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Period in seconds between consecutive syncs. Default: 15.
+            },
+            &quot;sourceFormat&quot;: &quot;A String&quot;, # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured” mode.
+          },
+          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller # Hierarchy Controller configuration for the cluster.
+            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
+            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
+            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
+          },
+          &quot;policyController&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
+            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
+            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
+            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
+              &quot;A String&quot;,
+            ],
+            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
+            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
+            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Version of ACM installed.
+        },
+        &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator # Current install status of ACM&#x27;s Operator
+          &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment
+          &quot;errors&quot;: [ # Install errors.
+            { # Errors pertaining to the installation of ACM
+              &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
+            },
+          ],
+          &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator
+        },
+        &quot;policyControllerState&quot;: { # State for PolicyControllerState. # PolicyController status
+          &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
+            &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
+            &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
+          },
+          &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
+            &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
+          },
+        },
+      },
+      &quot;metering&quot;: { # Metering per-Membership Feature State. # Metering-specific spec.
+        &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
+        &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
+      },
+      &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # The high-level state of this Feature for a single membership.
+        &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+        &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+        &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Feature resource in the format `projects/*/locations/global/features/*`.
+  &quot;resourceState&quot;: { # FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the Feature in the Hub and across Memberships. # Output only. State of the Feature resource itself.
+    &quot;state&quot;: &quot;A String&quot;, # The current state of the Feature resource in the Hub API.
+  },
+  &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
+    &quot;multiclusteringress&quot;: { # FeatureSpec contains the input for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
+      &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
+    },
+  },
+  &quot;state&quot;: { # CommonFeatureState contains Hub-wide Feature status information. # Output only. The Hub-wide Feature state.
+    &quot;state&quot;: { # FeatureState describes the high-level state of a Feature. It may be used to describe a Feature&#x27;s state at the environ-level, or per-membershop, depending on the context. # Output only. The &quot;running state&quot; of the Feature in this Hub.
+      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this Feature.
+      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Feature resource was last updated.
+}
+
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  updateMask: string, Mask of fields to update.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.global_.html b/docs/dyn/gkehub_v1beta.projects.locations.global_.html
new file mode 100644
index 0000000..8d0c29c
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.locations.global_.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a> . <a href="gkehub_v1beta.projects.locations.html">locations</a> . <a href="gkehub_v1beta.projects.locations.global_.html">global_</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.locations.global_.features.html">features()</a></code>
+</p>
+<p class="firstline">Returns the features Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.html b/docs/dyn/gkehub_v1beta.projects.locations.html
new file mode 100644
index 0000000..066f6a3
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.locations.html
@@ -0,0 +1,191 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a> . <a href="gkehub_v1beta.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.locations.features.html">features()</a></code>
+</p>
+<p class="firstline">Returns the features Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.locations.global_.html">global_()</a></code>
+</p>
+<p class="firstline">Returns the global_ Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.locations.memberships.html">memberships()</a></code>
+</p>
+<p class="firstline">Returns the memberships Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1beta.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.memberships.html b/docs/dyn/gkehub_v1beta.projects.locations.memberships.html
new file mode 100644
index 0000000..f1aefbf
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.locations.memberships.html
@@ -0,0 +1,258 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a> . <a href="gkehub_v1beta.projects.locations.html">locations</a> . <a href="gkehub_v1beta.projects.locations.memberships.html">memberships</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.operations.html b/docs/dyn/gkehub_v1beta.projects.locations.operations.html
new file mode 100644
index 0000000..1303a5b
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta.html">GKE Hub</a> . <a href="gkehub_v1beta.projects.html">projects</a> . <a href="gkehub_v1beta.projects.locations.html">locations</a> . <a href="gkehub_v1beta.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta1.html b/docs/dyn/gkehub_v1beta1.html
new file mode 100644
index 0000000..ad73da0
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta1.html">GKE Hub</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta1.projects.html b/docs/dyn/gkehub_v1beta1.projects.html
new file mode 100644
index 0000000..2c0b345
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta1.html">GKE Hub</a> . <a href="gkehub_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta1.projects.locations.html b/docs/dyn/gkehub_v1beta1.projects.locations.html
new file mode 100644
index 0000000..82154b4
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta1.projects.locations.html
@@ -0,0 +1,181 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta1.html">GKE Hub</a> . <a href="gkehub_v1beta1.projects.html">projects</a> . <a href="gkehub_v1beta1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gkehub_v1beta1.projects.locations.memberships.html">memberships()</a></code>
+</p>
+<p class="firstline">Returns the memberships Resource.</p>
+
+<p class="toc_element">
+  <code><a href="gkehub_v1beta1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta1.projects.locations.memberships.html b/docs/dyn/gkehub_v1beta1.projects.locations.memberships.html
new file mode 100644
index 0000000..2dcf503
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta1.projects.locations.memberships.html
@@ -0,0 +1,774 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta1.html">GKE Hub</a> . <a href="gkehub_v1beta1.projects.html">projects</a> . <a href="gkehub_v1beta1.projects.locations.html">locations</a> . <a href="gkehub_v1beta1.projects.locations.memberships.html">memberships</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, membershipId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Adds a new Membership.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes a Membership.</p>
+<p class="toc_element">
+  <code><a href="#generateConnectManifest">generateConnectManifest(name, connectAgent_name=None, connectAgent_namespace=None, connectAgent_proxy=None, imagePullSecretContent=None, isUpgrade=None, registry=None, version=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generates the manifest for deployment of the GKE connect agent.</p>
+<p class="toc_element">
+  <code><a href="#generateExclusivityManifest">generateExclusivityManifest(name, crManifest=None, crdManifest=None, x__xgafv=None)</a></code></p>
+<p class="firstline">GenerateExclusivityManifest generates the manifests to update the exclusivity artifacts in the cluster if needed. Exclusivity artifacts include the Membership custom resource definition (CRD) and the singleton Membership custom resource (CR). Combined with ValidateExclusivity, exclusivity artifacts guarantee that a Kubernetes cluster is only registered to a single GKE Hub. The Membership CRD is versioned, and may require conversion when the GKE Hub API server begins serving a newer version of the CRD and corresponding CR. The response will be the converted CRD and CR if there are any differences between the versions.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a Membership.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Memberships in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates an existing Membership.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<p class="toc_element">
+  <code><a href="#validateExclusivity">validateExclusivity(parent, crManifest=None, intendedMembership=None, x__xgafv=None)</a></code></p>
+<p class="firstline">ValidateExclusivity validates the state of exclusivity in the cluster. The validation does not depend on an existing Hub membership resource.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, membershipId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Adds a new Membership.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*`
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+    &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+      &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+      &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+        &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+        &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+      },
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # State of the Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+    &quot;description&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}
+
+  membershipId: string, Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Removes a Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generateConnectManifest">generateConnectManifest(name, connectAgent_name=None, connectAgent_namespace=None, connectAgent_proxy=None, imagePullSecretContent=None, isUpgrade=None, registry=None, version=None, x__xgafv=None)</code>
+  <pre>Generates the manifest for deployment of the GKE connect agent.
+
+Args:
+  name: string, Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`. (required)
+  connectAgent_name: string, Do not set.
+  connectAgent_namespace: string, Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.
+  connectAgent_proxy: string, Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent&#x27;s outbound traffic through a HTTP(S) proxy.
+  imagePullSecretContent: string, Optional. The image pull secret content for the registry, if not public.
+  isUpgrade: boolean, Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.
+  registry: string, Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.
+  version: string, Optional. The Connect agent version to use. Defaults to the most current version.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.
+  &quot;manifest&quot;: [ # The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.
+    { # ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.
+      &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+      &quot;type&quot;: { # TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest. # Kubernetes type of the resource.
+        &quot;apiVersion&quot;: &quot;A String&quot;, # APIVersion of the resource (e.g. v1).
+        &quot;kind&quot;: &quot;A String&quot;, # Kind of the resource (e.g. Deployment).
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generateExclusivityManifest">generateExclusivityManifest(name, crManifest=None, crdManifest=None, x__xgafv=None)</code>
+  <pre>GenerateExclusivityManifest generates the manifests to update the exclusivity artifacts in the cluster if needed. Exclusivity artifacts include the Membership custom resource definition (CRD) and the singleton Membership custom resource (CR). Combined with ValidateExclusivity, exclusivity artifacts guarantee that a Kubernetes cluster is only registered to a single GKE Hub. The Membership CRD is versioned, and may require conversion when the GKE Hub API server begins serving a newer version of the CRD and corresponding CR. The response will be the converted CRD and CR if there are any differences between the versions.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  crManifest: string, Optional. The YAML manifest of the membership CR retrieved by `kubectl get memberships membership`. Leave empty if the resource does not exist.
+  crdManifest: string, Optional. The YAML manifest of the membership CRD retrieved by `kubectl get customresourcedefinitions membership`. Leave empty if the resource does not exist.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response of the exclusivity artifacts manifests for the client to apply.
+  &quot;crManifest&quot;: &quot;A String&quot;, # The YAML manifest of the membership CR to apply if a new version of the CR is available. Empty if no update needs to be applied.
+  &quot;crdManifest&quot;: &quot;A String&quot;, # The YAML manifest of the membership CRD to apply if a newer version of the CRD is available. Empty if no update needs to be applied.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a Membership.
+
+Args:
+  name: string, Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*`
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+    &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+      &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+      &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+        &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+        &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+      },
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # State of the Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+    &quot;description&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Memberships in a given project and location.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. (required)
+  filter: string, Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = &quot;projects/foo-proj/locations/global/membership/bar&quot; - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING
+  orderBy: string, Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.
+  pageSize: integer, Optional. When requesting a &#x27;page&#x27; of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.
+  pageToken: string, Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for the `GkeHubMembershipService.ListMemberships` method.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.
+  &quot;resources&quot;: [ # The list of matching Memberships.
+    { # Membership contains information about a member cluster.
+      &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+        &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+        &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+        &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+        &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*`
+      &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+        &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+          &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+        },
+        &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+          &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+          &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+          &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+          &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+          &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+        },
+        &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+          &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+            { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+              &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+              &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+            },
+          ],
+          &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+          &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+            { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+              &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+              &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+            },
+          ],
+          &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+            &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+            &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+          },
+        },
+      },
+      &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+      &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+      &quot;labels&quot;: { # Optional. GCP labels for this membership.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+      &quot;state&quot;: { # State of the Membership resource. # Output only. State of the Membership resource.
+        &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+        &quot;description&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+        &quot;updateTime&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+      },
+      &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+    },
+  ],
+  &quot;unreachable&quot;: [ # List of locations that could not be reached while fetching this list.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates an existing Membership.
+
+Args:
+  name: string, Required. The membership resource name in the format: `projects/[project_id]/locations/global/memberships/[membership_id]` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Membership contains information about a member cluster.
+  &quot;authority&quot;: { # Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity # Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
+    &quot;identityProvider&quot;: &quot;A String&quot;, # Output only. An identity provider that reflects the `issuer` in the workload identity pool.
+    &quot;issuer&quot;: &quot;A String&quot;, # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length &lt;2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).
+    &quot;oidcJwks&quot;: &quot;A String&quot;, # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.
+    &quot;workloadIdentityPool&quot;: &quot;A String&quot;, # Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the Membership was created.
+  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the Membership was deleted.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*`
+  &quot;endpoint&quot;: { # MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata. # Optional. Endpoint information to reach this member.
+    &quot;gkeCluster&quot;: { # GkeCluster contains information specific to GKE clusters. # Optional. GKE-specific information. Only present if this Membership is a GKE cluster.
+      &quot;resourceLink&quot;: &quot;A String&quot;, # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.
+    },
+    &quot;kubernetesMetadata&quot;: { # KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters. # Output only. Useful Kubernetes-specific metadata.
+      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. Kubernetes API server version string as reported by &#x27;/version&#x27;.
+      &quot;memoryMb&quot;: 42, # Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.
+      &quot;nodeCount&quot;: 42, # Output only. Node count as reported by Kubernetes nodes resources.
+      &quot;nodeProviderId&quot;: &quot;A String&quot;, # Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.
+      &quot;vcpuCount&quot;: 42, # Output only. vCPU count as reported by Kubernetes nodes resources.
+    },
+    &quot;kubernetesResource&quot;: { # KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster. # Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features.
+      &quot;connectResources&quot;: [ # Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;membershipCrManifest&quot;: &quot;A String&quot;, # Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.
+      &quot;membershipResources&quot;: [ # Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.
+        { # ResourceManifest represents a single Kubernetes resource to be applied to the cluster.
+          &quot;clusterScoped&quot;: True or False, # Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.
+          &quot;manifest&quot;: &quot;A String&quot;, # YAML manifest of the resource.
+        },
+      ],
+      &quot;resourceOptions&quot;: { # ResourceOptions represent options for Kubernetes resource generation. # Optional. Options for Kubernetes resource generation.
+        &quot;connectVersion&quot;: &quot;A String&quot;, # Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.
+        &quot;v1beta1Crd&quot;: True or False, # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions &lt;1.16.
+      },
+    },
+  },
+  &quot;externalId&quot;: &quot;A String&quot;, # Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.
+  &quot;infrastructureType&quot;: &quot;A String&quot;, # Optional. The infrastructure type this Membership is running on.
+  &quot;labels&quot;: { # Optional. GCP labels for this membership.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;lastConnectionTime&quot;: &quot;A String&quot;, # Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.
+  &quot;state&quot;: { # State of the Membership resource. # Output only. State of the Membership resource.
+    &quot;code&quot;: &quot;A String&quot;, # Output only. The current state of the Membership resource.
+    &quot;description&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # This field is never set by the Hub Service.
+  },
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the Membership was last updated.
+}
+
+  requestId: string, Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  updateMask: string, Required. Mask of fields to update. At least one field path must be specified in this mask.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="validateExclusivity">validateExclusivity(parent, crManifest=None, intendedMembership=None, x__xgafv=None)</code>
+  <pre>ValidateExclusivity validates the state of exclusivity in the cluster. The validation does not depend on an existing Hub membership resource.
+
+Args:
+  parent: string, Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`. (required)
+  crManifest: string, Optional. The YAML of the membership CR in the cluster. Empty if the membership CR does not exist.
+  intendedMembership: string, Required. The intended membership name under the `parent`. This method only does validation in anticipation of a CreateMembership call with the same name.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response of exclusivity artifacts validation result status.
+  &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The validation result. * `OK` means that exclusivity is validated, assuming the manifest produced by GenerateExclusivityManifest is successfully applied. * `ALREADY_EXISTS` means that the Membership CRD is already owned by another Hub. See `status.message` for more information.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gkehub_v1beta1.projects.locations.operations.html b/docs/dyn/gkehub_v1beta1.projects.locations.operations.html
new file mode 100644
index 0000000..ca4f187
--- /dev/null
+++ b/docs/dyn/gkehub_v1beta1.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gkehub_v1beta1.html">GKE Hub</a> . <a href="gkehub_v1beta1.projects.html">projects</a> . <a href="gkehub_v1beta1.projects.locations.html">locations</a> . <a href="gkehub_v1beta1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gmailpostmastertools_v1.domains.html b/docs/dyn/gmailpostmastertools_v1.domains.html
new file mode 100644
index 0000000..d34f62f
--- /dev/null
+++ b/docs/dyn/gmailpostmastertools_v1.domains.html
@@ -0,0 +1,162 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gmailpostmastertools_v1.html">Gmail Postmaster Tools API</a> . <a href="gmailpostmastertools_v1.domains.html">domains</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gmailpostmastertools_v1.domains.trafficStats.html">trafficStats()</a></code>
+</p>
+<p class="firstline">Returns the trafficStats Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a specific domain registered by the client. Returns NOT_FOUND if the domain does not exist.</p>
+<p class="toc_element">
+  <code><a href="#list">list(pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the domains that have been registered by the client. The order of domains in the response is unspecified and non-deterministic. Newly created domains will not necessarily be added to the end of this list.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a specific domain registered by the client. Returns NOT_FOUND if the domain does not exist.
+
+Args:
+  name: string, The resource name of the domain. It should have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A registered domain resource in the Postmaster API.
+  &quot;createTime&quot;: &quot;A String&quot;, # Timestamp when the user registered this domain. Assigned by the server.
+  &quot;name&quot;: &quot;A String&quot;, # The resource name of the Domain. Domain names have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name (i.e., mymail.mydomain.com).
+  &quot;permission&quot;: &quot;A String&quot;, # User’s permission for this domain. Assigned by the server.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the domains that have been registered by the client. The order of domains in the response is unspecified and non-deterministic. Newly created domains will not necessarily be added to the end of this list.
+
+Args:
+  pageSize: integer, Requested page size. Server may return fewer domains than requested. If unspecified, server will pick an appropriate default.
+  pageToken: string, The next_page_token value returned from a previous List request, if any. This is the value of ListDomainsResponse.next_page_token returned from the previous call to `ListDomains` method.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListDomains.
+  &quot;domains&quot;: [ # The list of domains.
+    { # A registered domain resource in the Postmaster API.
+      &quot;createTime&quot;: &quot;A String&quot;, # Timestamp when the user registered this domain. Assigned by the server.
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the Domain. Domain names have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name (i.e., mymail.mydomain.com).
+      &quot;permission&quot;: &quot;A String&quot;, # User’s permission for this domain. Assigned by the server.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gmailpostmastertools_v1.domains.trafficStats.html b/docs/dyn/gmailpostmastertools_v1.domains.trafficStats.html
new file mode 100644
index 0000000..9f0fd25
--- /dev/null
+++ b/docs/dyn/gmailpostmastertools_v1.domains.trafficStats.html
@@ -0,0 +1,218 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gmailpostmastertools_v1.html">Gmail Postmaster Tools API</a> . <a href="gmailpostmastertools_v1.domains.html">domains</a> . <a href="gmailpostmastertools_v1.domains.trafficStats.html">trafficStats</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Get traffic statistics for a domain on a specific date. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, endDate_day=None, endDate_month=None, endDate_year=None, pageSize=None, pageToken=None, startDate_day=None, startDate_month=None, startDate_year=None, x__xgafv=None)</a></code></p>
+<p class="firstline">List traffic statistics for all available days. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Get traffic statistics for a domain on a specific date. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.
+
+Args:
+  name: string, The resource name of the traffic statistics to get. E.g., domains/mymail.mydomain.com/trafficStats/20160807. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Email traffic statistics pertaining to a specific date.
+  &quot;deliveryErrors&quot;: [ # Delivery errors for the domain. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+    { # Metric on a particular delivery error type.
+      &quot;errorClass&quot;: &quot;A String&quot;, # The class of delivery error.
+      &quot;errorRatio&quot;: 3.14, # The ratio of messages where the error occurred vs all authenticated traffic.
+      &quot;errorType&quot;: &quot;A String&quot;, # The type of delivery error.
+    },
+  ],
+  &quot;dkimSuccessRatio&quot;: 3.14, # The ratio of mail that successfully authenticated with DKIM vs. all mail that attempted to authenticate with [DKIM](http://www.dkim.org/). Spoofed mail is excluded.
+  &quot;dmarcSuccessRatio&quot;: 3.14, # The ratio of mail that passed [DMARC](https://dmarc.org/) alignment checks vs all mail received from the domain that successfully authenticated with either of [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+  &quot;domainReputation&quot;: &quot;A String&quot;, # Reputation of the domain.
+  &quot;inboundEncryptionRatio&quot;: 3.14, # The ratio of incoming mail (to Gmail), that passed secure transport (TLS) vs all mail received from that domain. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+  &quot;ipReputations&quot;: [ # Reputation information pertaining to the IP addresses of the email servers for the domain. There is exactly one entry for each reputation category except REPUTATION_CATEGORY_UNSPECIFIED.
+    { # IP Reputation information for a set of IPs in a specific reputation category.
+      &quot;ipCount&quot;: &quot;A String&quot;, # Total number of unique IPs in this reputation category. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+      &quot;reputation&quot;: &quot;A String&quot;, # The reputation category this IP reputation represents.
+      &quot;sampleIps&quot;: [ # A sample of IPs in this reputation category.
+        &quot;A String&quot;,
+      ],
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # The resource name of the traffic statistics. Traffic statistic names have the form `domains/{domain}/trafficStats/{date}`, where domain_name is the fully qualified domain name (i.e., mymail.mydomain.com) of the domain this traffic statistics pertains to and date is the date in yyyymmdd format that these statistics corresponds to. For example: domains/mymail.mydomain.com/trafficStats/20160807
+  &quot;outboundEncryptionRatio&quot;: 3.14, # The ratio of outgoing mail (from Gmail) that was accepted over secure transport (TLS).
+  &quot;spammyFeedbackLoops&quot;: [ # Spammy [Feedback loop identifiers] (https://support.google.com/mail/answer/6254652) with their individual spam rates. This metric only pertains to traffic that is authenticated by [DKIM](http://www.dkim.org/).
+    { # [Feedback loop](https://support.google.com/mail/answer/6254652) identifier information.
+      &quot;id&quot;: &quot;A String&quot;, # Feedback loop identifier that uniquely identifies individual campaigns.
+      &quot;spamRatio&quot;: 3.14, # The ratio of user marked spam messages with the identifier vs the total number of inboxed messages with that identifier.
+    },
+  ],
+  &quot;spfSuccessRatio&quot;: 3.14, # The ratio of mail that successfully authenticated with SPF vs. all mail that attempted to authenticate with [SPF](http://www.openspf.org/). Spoofed mail is excluded.
+  &quot;userReportedSpamRatio&quot;: 3.14, # The ratio of user-report spam vs. email that was sent to the inbox. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, endDate_day=None, endDate_month=None, endDate_year=None, pageSize=None, pageToken=None, startDate_day=None, startDate_month=None, startDate_year=None, x__xgafv=None)</code>
+  <pre>List traffic statistics for all available days. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.
+
+Args:
+  parent: string, The resource name of the domain whose traffic statistics we&#x27;d like to list. It should have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name. (required)
+  endDate_day: integer, Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+  endDate_month: integer, Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+  endDate_year: integer, Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+  pageSize: integer, Requested page size. Server may return fewer TrafficStats than requested. If unspecified, server will pick an appropriate default.
+  pageToken: string, The next_page_token value returned from a previous List request, if any. This is the value of ListTrafficStatsResponse.next_page_token returned from the previous call to `ListTrafficStats` method.
+  startDate_day: integer, Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+  startDate_month: integer, Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+  startDate_year: integer, Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for ListTrafficStats.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
+  &quot;trafficStats&quot;: [ # The list of TrafficStats.
+    { # Email traffic statistics pertaining to a specific date.
+      &quot;deliveryErrors&quot;: [ # Delivery errors for the domain. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+        { # Metric on a particular delivery error type.
+          &quot;errorClass&quot;: &quot;A String&quot;, # The class of delivery error.
+          &quot;errorRatio&quot;: 3.14, # The ratio of messages where the error occurred vs all authenticated traffic.
+          &quot;errorType&quot;: &quot;A String&quot;, # The type of delivery error.
+        },
+      ],
+      &quot;dkimSuccessRatio&quot;: 3.14, # The ratio of mail that successfully authenticated with DKIM vs. all mail that attempted to authenticate with [DKIM](http://www.dkim.org/). Spoofed mail is excluded.
+      &quot;dmarcSuccessRatio&quot;: 3.14, # The ratio of mail that passed [DMARC](https://dmarc.org/) alignment checks vs all mail received from the domain that successfully authenticated with either of [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+      &quot;domainReputation&quot;: &quot;A String&quot;, # Reputation of the domain.
+      &quot;inboundEncryptionRatio&quot;: 3.14, # The ratio of incoming mail (to Gmail), that passed secure transport (TLS) vs all mail received from that domain. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+      &quot;ipReputations&quot;: [ # Reputation information pertaining to the IP addresses of the email servers for the domain. There is exactly one entry for each reputation category except REPUTATION_CATEGORY_UNSPECIFIED.
+        { # IP Reputation information for a set of IPs in a specific reputation category.
+          &quot;ipCount&quot;: &quot;A String&quot;, # Total number of unique IPs in this reputation category. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).
+          &quot;reputation&quot;: &quot;A String&quot;, # The reputation category this IP reputation represents.
+          &quot;sampleIps&quot;: [ # A sample of IPs in this reputation category.
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the traffic statistics. Traffic statistic names have the form `domains/{domain}/trafficStats/{date}`, where domain_name is the fully qualified domain name (i.e., mymail.mydomain.com) of the domain this traffic statistics pertains to and date is the date in yyyymmdd format that these statistics corresponds to. For example: domains/mymail.mydomain.com/trafficStats/20160807
+      &quot;outboundEncryptionRatio&quot;: 3.14, # The ratio of outgoing mail (from Gmail) that was accepted over secure transport (TLS).
+      &quot;spammyFeedbackLoops&quot;: [ # Spammy [Feedback loop identifiers] (https://support.google.com/mail/answer/6254652) with their individual spam rates. This metric only pertains to traffic that is authenticated by [DKIM](http://www.dkim.org/).
+        { # [Feedback loop](https://support.google.com/mail/answer/6254652) identifier information.
+          &quot;id&quot;: &quot;A String&quot;, # Feedback loop identifier that uniquely identifies individual campaigns.
+          &quot;spamRatio&quot;: 3.14, # The ratio of user marked spam messages with the identifier vs the total number of inboxed messages with that identifier.
+        },
+      ],
+      &quot;spfSuccessRatio&quot;: 3.14, # The ratio of mail that successfully authenticated with SPF vs. all mail that attempted to authenticate with [SPF](http://www.openspf.org/). Spoofed mail is excluded.
+      &quot;userReportedSpamRatio&quot;: 3.14, # The ratio of user-report spam vs. email that was sent to the inbox. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/gmailpostmastertools_v1.html b/docs/dyn/gmailpostmastertools_v1.html
new file mode 100644
index 0000000..2ab32d0
--- /dev/null
+++ b/docs/dyn/gmailpostmastertools_v1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="gmailpostmastertools_v1.html">Gmail Postmaster Tools API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="gmailpostmastertools_v1.domains.html">domains()</a></code>
+</p>
+<p class="firstline">Returns the domains Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/homegraph_v1.devices.html b/docs/dyn/homegraph_v1.devices.html
index 7a2e016..206bdfe 100644
--- a/docs/dyn/homegraph_v1.devices.html
+++ b/docs/dyn/homegraph_v1.devices.html
@@ -250,11 +250,6 @@
             &quot;A String&quot;,
           ],
         },
-        &quot;nonLocalTraits&quot;: [ # See description for &quot;traits&quot;. For Smart Home Entertainment Devices (SHED) devices, some traits can only be executed on 3P cloud, e.g. &quot;non_local_traits&quot;: [ { &quot;trait&quot;: &quot;action.devices.traits.MediaInitiation&quot; }, { &quot;trait&quot;: &quot;action.devices.traits.Channel&quot; } ] go/shed-per-trait-routing.
-          { # LINT.IfChange go/shed-per-trait-routing. Making it object to allow for extendible design, where we can add attributes in future.
-            &quot;trait&quot;: &quot;A String&quot;, # Trait name, e.g., &quot;action.devices.traits.MediaInitiation&quot;. See [device traits](https://developers.google.com/assistant/smarthome/traits).
-          },
-        ],
         &quot;notificationSupportedByAgent&quot;: True or False, # Indicates whether your smart home Action will report notifications to Google for this device via ReportStateAndNotification. If your smart home Action enables users to control device notifications, you should update this field and call RequestSyncDevices.
         &quot;otherDeviceIds&quot;: [ # Alternate IDs associated with this device. This is used to identify cloud synced devices enabled for [local fulfillment](https://developers.google.com/assistant/smarthome/concepts/local).
           { # Alternate third-party device ID.
diff --git a/docs/dyn/iap_v1.v1.html b/docs/dyn/iap_v1.v1.html
index 5496eba..30f1b55 100644
--- a/docs/dyn/iap_v1.v1.html
+++ b/docs/dyn/iap_v1.v1.html
@@ -172,10 +172,10 @@
     &quot;policyDelegationSettings&quot;: { # PolicyDelegationConfig allows google-internal teams to use IAP for apps hosted in a tenant project. Using these settings, the app can delegate permission check to happen against the linked customer project. This is only ever supposed to be used by google internal teams, hence the restriction on the proto. # Settings to configure Policy delegation for apps hosted in tenant projects. INTERNAL_ONLY.
       &quot;iamPermission&quot;: &quot;A String&quot;, # Permission to check in IAM.
       &quot;iamServiceName&quot;: &quot;A String&quot;, # The DNS name of the service (e.g. &quot;resourcemanager.googleapis.com&quot;). This should be the domain name part of the full resource names (see https://aip.dev/122#full-resource-names), which is usually the same as IamServiceSpec.service of the service where the resource type is defined.
-      &quot;policyName&quot;: { # Policy name to be checked
-        &quot;id&quot;: &quot;A String&quot;,
+      &quot;policyName&quot;: { # An internal name for an IAM policy, based on the resource to which the policy applies. Not to be confused with a resource&#x27;s external full resource name. For more information on this distinction, see go/iam-full-resource-names. # Policy name to be checked
+        &quot;id&quot;: &quot;A String&quot;, # Identifies an instance of the type. ID format varies by type. The ID format is defined in the IAM .service file that defines the type, either in path_mapping or in a comment.
         &quot;region&quot;: &quot;A String&quot;, # For Cloud IAM: The location of the Policy. Must be empty or &quot;global&quot; for Policies owned by global IAM. Must name a region from prodspec/cloud-iam-cloudspec for Regional IAM Policies, see go/iam-faq#where-is-iam-currently-deployed. For Local IAM: This field should be set to &quot;local&quot;.
-        &quot;type&quot;: &quot;A String&quot;, # Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
+        &quot;type&quot;: &quot;A String&quot;, # Resource type. Types are defined in IAM&#x27;s .service files. Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
       },
       &quot;resource&quot;: { # IAM resource to check permission on
         &quot;labels&quot;: { # The service defined labels of the resource on which the conditions will be evaluated. The semantics - including the key names - are vague to IAM. If the effective condition has a reference to a `resource.labels[foo]` construct, IAM consults with this map to retrieve the values associated with `foo` key for Conditions evaluation. If the provided key is not found in the labels map, the condition would evaluate to false. This field is in limited use. If your intended use case is not expected to express resource.labels attribute in IAM Conditions, leave this field empty. Before planning on using this attribute please: * Read go/iam-conditions-labels-comm and ensure your service can meet the data availability and management requirements. * Talk to iam-conditions-eng@ about your use case.
@@ -314,10 +314,10 @@
     &quot;policyDelegationSettings&quot;: { # PolicyDelegationConfig allows google-internal teams to use IAP for apps hosted in a tenant project. Using these settings, the app can delegate permission check to happen against the linked customer project. This is only ever supposed to be used by google internal teams, hence the restriction on the proto. # Settings to configure Policy delegation for apps hosted in tenant projects. INTERNAL_ONLY.
       &quot;iamPermission&quot;: &quot;A String&quot;, # Permission to check in IAM.
       &quot;iamServiceName&quot;: &quot;A String&quot;, # The DNS name of the service (e.g. &quot;resourcemanager.googleapis.com&quot;). This should be the domain name part of the full resource names (see https://aip.dev/122#full-resource-names), which is usually the same as IamServiceSpec.service of the service where the resource type is defined.
-      &quot;policyName&quot;: { # Policy name to be checked
-        &quot;id&quot;: &quot;A String&quot;,
+      &quot;policyName&quot;: { # An internal name for an IAM policy, based on the resource to which the policy applies. Not to be confused with a resource&#x27;s external full resource name. For more information on this distinction, see go/iam-full-resource-names. # Policy name to be checked
+        &quot;id&quot;: &quot;A String&quot;, # Identifies an instance of the type. ID format varies by type. The ID format is defined in the IAM .service file that defines the type, either in path_mapping or in a comment.
         &quot;region&quot;: &quot;A String&quot;, # For Cloud IAM: The location of the Policy. Must be empty or &quot;global&quot; for Policies owned by global IAM. Must name a region from prodspec/cloud-iam-cloudspec for Regional IAM Policies, see go/iam-faq#where-is-iam-currently-deployed. For Local IAM: This field should be set to &quot;local&quot;.
-        &quot;type&quot;: &quot;A String&quot;, # Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
+        &quot;type&quot;: &quot;A String&quot;, # Resource type. Types are defined in IAM&#x27;s .service files. Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
       },
       &quot;resource&quot;: { # IAM resource to check permission on
         &quot;labels&quot;: { # The service defined labels of the resource on which the conditions will be evaluated. The semantics - including the key names - are vague to IAM. If the effective condition has a reference to a `resource.labels[foo]` construct, IAM consults with this map to retrieve the values associated with `foo` key for Conditions evaluation. If the provided key is not found in the labels map, the condition would evaluate to false. This field is in limited use. If your intended use case is not expected to express resource.labels attribute in IAM Conditions, leave this field empty. Before planning on using this attribute please: * Read go/iam-conditions-labels-comm and ensure your service can meet the data availability and management requirements. * Talk to iam-conditions-eng@ about your use case.
@@ -367,10 +367,10 @@
     &quot;policyDelegationSettings&quot;: { # PolicyDelegationConfig allows google-internal teams to use IAP for apps hosted in a tenant project. Using these settings, the app can delegate permission check to happen against the linked customer project. This is only ever supposed to be used by google internal teams, hence the restriction on the proto. # Settings to configure Policy delegation for apps hosted in tenant projects. INTERNAL_ONLY.
       &quot;iamPermission&quot;: &quot;A String&quot;, # Permission to check in IAM.
       &quot;iamServiceName&quot;: &quot;A String&quot;, # The DNS name of the service (e.g. &quot;resourcemanager.googleapis.com&quot;). This should be the domain name part of the full resource names (see https://aip.dev/122#full-resource-names), which is usually the same as IamServiceSpec.service of the service where the resource type is defined.
-      &quot;policyName&quot;: { # Policy name to be checked
-        &quot;id&quot;: &quot;A String&quot;,
+      &quot;policyName&quot;: { # An internal name for an IAM policy, based on the resource to which the policy applies. Not to be confused with a resource&#x27;s external full resource name. For more information on this distinction, see go/iam-full-resource-names. # Policy name to be checked
+        &quot;id&quot;: &quot;A String&quot;, # Identifies an instance of the type. ID format varies by type. The ID format is defined in the IAM .service file that defines the type, either in path_mapping or in a comment.
         &quot;region&quot;: &quot;A String&quot;, # For Cloud IAM: The location of the Policy. Must be empty or &quot;global&quot; for Policies owned by global IAM. Must name a region from prodspec/cloud-iam-cloudspec for Regional IAM Policies, see go/iam-faq#where-is-iam-currently-deployed. For Local IAM: This field should be set to &quot;local&quot;.
-        &quot;type&quot;: &quot;A String&quot;, # Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
+        &quot;type&quot;: &quot;A String&quot;, # Resource type. Types are defined in IAM&#x27;s .service files. Valid values for type might be &#x27;gce&#x27;, &#x27;gcs&#x27;, &#x27;project&#x27;, &#x27;account&#x27; etc.
       },
       &quot;resource&quot;: { # IAM resource to check permission on
         &quot;labels&quot;: { # The service defined labels of the resource on which the conditions will be evaluated. The semantics - including the key names - are vague to IAM. If the effective condition has a reference to a `resource.labels[foo]` construct, IAM consults with this map to retrieve the values associated with `foo` key for Conditions evaluation. If the provided key is not found in the labels map, the condition would evaluate to false. This field is in limited use. If your intended use case is not expected to express resource.labels attribute in IAM Conditions, leave this field empty. Before planning on using this attribute please: * Read go/iam-conditions-labels-comm and ensure your service can meet the data availability and management requirements. * Talk to iam-conditions-eng@ about your use case.
diff --git a/docs/dyn/index.md b/docs/dyn/index.md
index 61c292a..990335e 100644
--- a/docs/dyn/index.md
+++ b/docs/dyn/index.md
@@ -61,7 +61,7 @@
 
 
 ## analyticsdata
-* [v1alpha](http://googleapis.github.io/google-api-python-client/docs/dyn/analyticsdata_v1alpha.html)
+* [v1beta](http://googleapis.github.io/google-api-python-client/docs/dyn/analyticsdata_v1beta.html)
 
 
 ## analyticsreporting
@@ -97,8 +97,6 @@
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/appengine_v1.html)
 * [v1alpha](http://googleapis.github.io/google-api-python-client/docs/dyn/appengine_v1alpha.html)
 * [v1beta](http://googleapis.github.io/google-api-python-client/docs/dyn/appengine_v1beta.html)
-* [v1beta4](http://googleapis.github.io/google-api-python-client/docs/dyn/appengine_v1beta4.html)
-* [v1beta5](http://googleapis.github.io/google-api-python-client/docs/dyn/appengine_v1beta5.html)
 
 
 ## area120tables
@@ -377,6 +375,7 @@
 
 
 ## documentai
+* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/documentai_v1.html)
 * [v1beta2](http://googleapis.github.io/google-api-python-client/docs/dyn/documentai_v1beta2.html)
 * [v1beta3](http://googleapis.github.io/google-api-python-client/docs/dyn/documentai_v1beta3.html)
 
@@ -613,6 +612,10 @@
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/mybusinessaccountmanagement_v1.html)
 
 
+## mybusinesslodging
+* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/mybusinesslodging_v1.html)
+
+
 ## networkconnectivity
 * [v1alpha1](http://googleapis.github.io/google-api-python-client/docs/dyn/networkconnectivity_v1alpha1.html)
 
@@ -631,6 +634,7 @@
 
 
 ## ondemandscanning
+* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/ondemandscanning_v1.html)
 * [v1beta1](http://googleapis.github.io/google-api-python-client/docs/dyn/ondemandscanning_v1beta1.html)
 
 
@@ -666,6 +670,7 @@
 
 
 ## policysimulator
+* [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/policysimulator_v1.html)
 * [v1beta1](http://googleapis.github.io/google-api-python-client/docs/dyn/policysimulator_v1beta1.html)
 
 
diff --git a/docs/dyn/lifesciences_v2beta.projects.locations.html b/docs/dyn/lifesciences_v2beta.projects.locations.html
index 3fa5ad9..77ea48b 100644
--- a/docs/dyn/lifesciences_v2beta.projects.locations.html
+++ b/docs/dyn/lifesciences_v2beta.projects.locations.html
@@ -136,7 +136,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/localservices_v1.accountReports.html b/docs/dyn/localservices_v1.accountReports.html
index 40a58b0..fcebbb9 100644
--- a/docs/dyn/localservices_v1.accountReports.html
+++ b/docs/dyn/localservices_v1.accountReports.html
@@ -113,7 +113,7 @@
 
     { # A page of the response received from the SearchAccountReports method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page.
   &quot;accountReports&quot;: [ # List of account reports which maps 1:1 to a particular linked GLS account.
-    { # An Account Report of a GLS account identified by their account id containing aggregate data gathered from a particular date range.
+    { # An Account Report of a GLS account identified by their account id containing aggregate data gathered from a particular date range. Next ID: 18
       &quot;accountId&quot;: &quot;A String&quot;, # Unique identifier of the GLS account.
       &quot;aggregatorInfo&quot;: { # Conatiner for aggregator specific information if lead is for an aggregator GLS account. # Aggregator specific information related to the account.
         &quot;aggregatorProviderId&quot;: &quot;A String&quot;, # Provider id (listed in aggregator system) which maps to a account id in GLS system.
@@ -126,6 +126,7 @@
       &quot;currentPeriodConnectedPhoneCalls&quot;: &quot;A String&quot;, # Number of connected phone calls (duration over 30s) in current specified period.
       &quot;currentPeriodPhoneCalls&quot;: &quot;A String&quot;, # Number of phone calls in current specified period, including both connected and unconnected calls.
       &quot;currentPeriodTotalCost&quot;: 3.14, # Total cost of the account in current specified period in the account&#x27;s specified currency.
+      &quot;impressionsLastTwoDays&quot;: &quot;A String&quot;, # Number of impressions that customers have had in the past 2 days.
       &quot;phoneLeadResponsiveness&quot;: 3.14, # Phone lead responsiveness of the account for the past 90 days from current date. This is computed by taking the total number of connected calls from charged phone leads and dividing by the total number of calls received.
       &quot;previousPeriodChargedLeads&quot;: &quot;A String&quot;, # Number of charged leads the account received in previous specified period.
       &quot;previousPeriodConnectedPhoneCalls&quot;: &quot;A String&quot;, # Number of connected phone calls (duration over 30s) in previous specified period.
diff --git a/docs/dyn/metastore_v1alpha.html b/docs/dyn/metastore_v1alpha.html
new file mode 100644
index 0000000..bf3c6ad
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1alpha.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1alpha.projects.html b/docs/dyn/metastore_v1alpha.projects.html
new file mode 100644
index 0000000..f15a1a8
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a> . <a href="metastore_v1alpha.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1alpha.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.html b/docs/dyn/metastore_v1alpha.projects.locations.html
new file mode 100644
index 0000000..9108fe1
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.projects.locations.html
@@ -0,0 +1,181 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a> . <a href="metastore_v1alpha.projects.html">projects</a> . <a href="metastore_v1alpha.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1alpha.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="metastore_v1alpha.projects.locations.services.html">services()</a></code>
+</p>
+<p class="firstline">Returns the services Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: &quot;us-east1&quot;.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: &quot;projects/example-project/locations/us-east1&quot;
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in AIP-160 (https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: &quot;us-east1&quot;.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: &quot;projects/example-project/locations/us-east1&quot;
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.operations.html b/docs/dyn/metastore_v1alpha.projects.locations.operations.html
new file mode 100644
index 0000000..ad600e9
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.projects.locations.operations.html
@@ -0,0 +1,208 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a> . <a href="metastore_v1alpha.projects.html">projects</a> . <a href="metastore_v1alpha.projects.locations.html">locations</a> . <a href="metastore_v1alpha.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns google.rpc.Code.UNIMPLEMENTED.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for Empty is empty JSON object {}.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as &quot;/v1/{name=users/*}/operations&quot; to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+      &quot;response&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html b/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
new file mode 100644
index 0000000..3885f15
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
@@ -0,0 +1,437 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a> . <a href="metastore_v1alpha.projects.html">projects</a> . <a href="metastore_v1alpha.projects.locations.html">locations</a> . <a href="metastore_v1alpha.projects.locations.services.html">services</a> . <a href="metastore_v1alpha.projects.locations.services.backups.html">backups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, backupId=None, body=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Backup in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single backup.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single backup.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists backups in a service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, backupId=None, body=None, requestId=None, x__xgafv=None)</code>
+  <pre>Creates a new Backup in a given project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the service in which to create a backup of the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The details of a backup resource.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the backup was started.
+  &quot;description&quot;: &quot;A String&quot;, # The description of the backup.
+  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the backup finished creating.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}
+  &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
+    &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+    &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+      &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+        &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+          &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+        },
+        &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+        &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+      },
+      &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+    },
+    &quot;labels&quot;: { # User-defined labels for the metastore service.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+      &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+      &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+    },
+    &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+      &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+        &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+      },
+    },
+    &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+      &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+        { # The details of a metadata export operation.
+          &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+          &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+        },
+      ],
+      &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+        { # The details of a metadata restore operation.
+          &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+          &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+          &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+        },
+      ],
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+    &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+    &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+    &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+    &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+    &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+    &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the backup.
+}
+
+  backupId: string, Required. The ID of the backup, which is used as the final component of the backup&#x27;s name.This value must be between 1 and 64 characters long, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Deletes a single backup.
+
+Args:
+  name: string, Required. The relative resource name of the backup to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}. (required)
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single backup.
+
+Args:
+  name: string, Required. The relative resource name of the backup to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The details of a backup resource.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the backup was started.
+  &quot;description&quot;: &quot;A String&quot;, # The description of the backup.
+  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the backup finished creating.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}
+  &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
+    &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+    &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+      &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+        &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+          &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+        },
+        &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+        &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+      },
+      &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+    },
+    &quot;labels&quot;: { # User-defined labels for the metastore service.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+      &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+      &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+    },
+    &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+      &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+        &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+      },
+    },
+    &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+      &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+        { # The details of a metadata export operation.
+          &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+          &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+        },
+      ],
+      &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+        { # The details of a metadata restore operation.
+          &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+          &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+          &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+        },
+      ],
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+    &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+    &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+    &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+    &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+    &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+    &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the backup.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists backups in a service.
+
+Args:
+  parent: string, Required. The relative resource name of the service whose backups to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups. (required)
+  filter: string, Optional. The filter to apply to list results.
+  orderBy: string, Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.
+  pageSize: integer, Optional. The maximum number of backups to return. The response may contain less than the maximum number. If unspecified, no more than 500 backups are returned. The maximum value is 1000; values above 1000 are changed to 1000.
+  pageToken: string, Optional. A page token, received from a previous DataprocMetastore.ListBackups call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListBackups must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for DataprocMetastore.ListBackups.
+  &quot;backups&quot;: [ # The backups of the specified service.
+    { # The details of a backup resource.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the backup was started.
+      &quot;description&quot;: &quot;A String&quot;, # The description of the backup.
+      &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the backup finished creating.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}
+      &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
+        &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+        &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+        &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+        &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+          &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+            &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+              &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+            },
+            &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+            &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+        },
+        &quot;labels&quot;: { # User-defined labels for the metastore service.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+          &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+          &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+        },
+        &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+          &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+            &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+          },
+        },
+        &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+          &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+            { # The details of a metadata export operation.
+              &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+              &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+              &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+              &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+              &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+            },
+          ],
+          &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+            { # The details of a metadata restore operation.
+              &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+              &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+              &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+              &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+              &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+              &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+            },
+          ],
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+        &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+        &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+        &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+        &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+        &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+        &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+      },
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the backup.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.services.html b/docs/dyn/metastore_v1alpha.projects.locations.services.html
new file mode 100644
index 0000000..8ea6d23
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.projects.locations.services.html
@@ -0,0 +1,796 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a> . <a href="metastore_v1alpha.projects.html">projects</a> . <a href="metastore_v1alpha.projects.locations.html">locations</a> . <a href="metastore_v1alpha.projects.locations.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1alpha.projects.locations.services.backups.html">backups()</a></code>
+</p>
+<p class="firstline">Returns the backups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="metastore_v1alpha.projects.locations.services.metadataImports.html">metadataImports()</a></code>
+</p>
+<p class="firstline">Returns the metadataImports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, requestId=None, serviceId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a metastore service in a project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single service.</p>
+<p class="toc_element">
+  <code><a href="#exportMetadata">exportMetadata(service, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Exports metadata from a service.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a single service.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists services in a project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single service.</p>
+<p class="toc_element">
+  <code><a href="#restore">restore(service, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Restores a service from a backup.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, requestId=None, serviceId=None, x__xgafv=None)</code>
+  <pre>Creates a metastore service in a project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the location in which to create a metastore service, in the following form:projects/{project_number}/locations/{location_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A managed metastore service that serves metadata queries.
+  &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+  &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+    &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+      &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+        &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+      },
+      &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+      &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+    },
+    &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+  },
+  &quot;labels&quot;: { # User-defined labels for the metastore service.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+    &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+  },
+  &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+    &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+      &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+    },
+  },
+  &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+    &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+      { # The details of a metadata export operation.
+        &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+        &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+      },
+    ],
+    &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+      { # The details of a metadata restore operation.
+        &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+        &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+  &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+  &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+  &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+  &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+  &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+  &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+}
+
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  serviceId: string, Required. The ID of the metastore service, which is used as the final component of the metastore service&#x27;s name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Deletes a single service.
+
+Args:
+  name: string, Required. The relative resource name of the metastore service to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="exportMetadata">exportMetadata(service, body=None, x__xgafv=None)</code>
+  <pre>Exports metadata from a service.
+
+Args:
+  service: string, Required. The relative resource name of the metastore service to run export, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for DataprocMetastore.ExportMetadata.
+  &quot;databaseDumpType&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  &quot;destinationGcsFolder&quot;: &quot;A String&quot;, # A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing exported files will be created below it.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a single service.
+
+Args:
+  name: string, Required. The relative resource name of the metastore service to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A managed metastore service that serves metadata queries.
+  &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+  &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+    &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+      &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+        &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+      },
+      &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+      &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+    },
+    &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+  },
+  &quot;labels&quot;: { # User-defined labels for the metastore service.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+    &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+  },
+  &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+    &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+      &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+    },
+  },
+  &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+    &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+      { # The details of a metadata export operation.
+        &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+        &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+      },
+    ],
+    &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+      { # The details of a metadata restore operation.
+        &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+        &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+  &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+  &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+  &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+  &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+  &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+  &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
+    { # Associates members with a role.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # 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.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists services in a project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the location of metastore services to list, in the following form:projects/{project_number}/locations/{location_id}. (required)
+  filter: string, Optional. The filter to apply to list results.
+  orderBy: string, Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.
+  pageSize: integer, Optional. The maximum number of services to return. The response may contain less than the maximum number. If unspecified, no more than 500 services are returned. The maximum value is 1000; values above 1000 are changed to 1000.
+  pageToken: string, Optional. A page token, received from a previous DataprocMetastore.ListServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListServices must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for DataprocMetastore.ListServices.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;services&quot;: [ # The services in the specified location.
+    { # A managed metastore service that serves metadata queries.
+      &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+      &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+      &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+        &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+          &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+            &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+          },
+          &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+          &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+      },
+      &quot;labels&quot;: { # User-defined labels for the metastore service.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+        &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+        &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+      },
+      &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+        &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+          &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+        },
+      },
+      &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+        &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+          { # The details of a metadata export operation.
+            &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+            &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+            &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+            &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+            &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+          },
+        ],
+        &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+          { # The details of a metadata restore operation.
+            &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+            &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+            &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+            &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+            &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+            &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+          },
+        ],
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+      &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+      &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+      &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+      &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+      &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+      &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+    },
+  ],
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single service.
+
+Args:
+  name: string, Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A managed metastore service that serves metadata queries.
+  &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+  &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+    &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+      &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+        &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+      },
+      &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+      &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+    },
+    &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+  },
+  &quot;labels&quot;: { # User-defined labels for the metastore service.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+    &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+  },
+  &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+    &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+      &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+    },
+  },
+  &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+    &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+      { # The details of a metadata export operation.
+        &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+        &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+      },
+    ],
+    &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+      { # The details of a metadata restore operation.
+        &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+        &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+  &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+  &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+  &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+  &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+  &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+  &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+}
+
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  updateMask: string, Required. A field mask used to specify the fields to be overwritten in the metastore service resource by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restore">restore(service, body=None, x__xgafv=None)</code>
+  <pre>Restores a service from a backup.
+
+Args:
+  service: string, Required. The relative resource name of the metastore service to run restore, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for DataprocMetastore.Restore.
+  &quot;backup&quot;: &quot;A String&quot;, # Required. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  &quot;restoreType&quot;: &quot;A String&quot;, # Optional. The type of restore. If unspecified, defaults to METADATA_ONLY.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SetIamPolicy method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
+      { # Associates members with a role.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # 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.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used:paths: &quot;bindings, etag&quot;
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
+    { # Associates members with a role.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # 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.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for TestIamPermissions method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the resource. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for TestIamPermissions method.
+  &quot;permissions&quot;: [ # A subset of TestPermissionsRequest.permissions that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.services.metadataImports.html b/docs/dyn/metastore_v1alpha.projects.locations.services.metadataImports.html
new file mode 100644
index 0000000..58790b5
--- /dev/null
+++ b/docs/dyn/metastore_v1alpha.projects.locations.services.metadataImports.html
@@ -0,0 +1,293 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1alpha.html">Dataproc Metastore API</a> . <a href="metastore_v1alpha.projects.html">projects</a> . <a href="metastore_v1alpha.projects.locations.html">locations</a> . <a href="metastore_v1alpha.projects.locations.services.html">services</a> . <a href="metastore_v1alpha.projects.locations.services.metadataImports.html">metadataImports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, metadataImportId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new MetadataImport 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">Gets details of a single import.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists imports in a service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a single import. Only the description field of MetadataImport is supported to be updated.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, metadataImportId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Creates a new MetadataImport in a given project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the service in which to create a metastore import, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A metastore resource that imports metadata.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+  &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+    &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+    &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+    &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+    &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  },
+  &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+}
+
+  metadataImportId: string, Required. The ID of the metadata import, which is used as the final component of the metadata import&#x27;s name.This value must be between 1 and 64 characters long, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single import.
+
+Args:
+  name: string, Required. The relative resource name of the metadata import to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A metastore resource that imports metadata.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+  &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+    &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+    &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+    &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+    &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  },
+  &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists imports in a service.
+
+Args:
+  parent: string, Required. The relative resource name of the service whose metadata imports to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports. (required)
+  filter: string, Optional. The filter to apply to list results.
+  orderBy: string, Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.
+  pageSize: integer, Optional. The maximum number of imports to return. The response may contain less than the maximum number. If unspecified, no more than 500 imports are returned. The maximum value is 1000; values above 1000 are changed to 1000.
+  pageToken: string, Optional. A page token, received from a previous DataprocMetastore.ListServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListServices must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for DataprocMetastore.ListMetadataImports.
+  &quot;metadataImports&quot;: [ # The imports in the specified service.
+    { # A metastore resource that imports metadata.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+      &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+        &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+        &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+        &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+      },
+      &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a single import. Only the description field of MetadataImport is supported to be updated.
+
+Args:
+  name: string, Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A metastore resource that imports metadata.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+  &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+    &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+    &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+    &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+    &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  },
+  &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+}
+
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  updateMask: string, Required. A field mask used to specify the fields to be overwritten in the metadata import resource by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.html b/docs/dyn/metastore_v1beta.html
new file mode 100644
index 0000000..9c47951
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1beta.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.projects.html b/docs/dyn/metastore_v1beta.projects.html
new file mode 100644
index 0000000..0bd66c9
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a> . <a href="metastore_v1beta.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1beta.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.projects.locations.html b/docs/dyn/metastore_v1beta.projects.locations.html
new file mode 100644
index 0000000..5d02d3e
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.projects.locations.html
@@ -0,0 +1,181 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a> . <a href="metastore_v1beta.projects.html">projects</a> . <a href="metastore_v1beta.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1beta.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="metastore_v1beta.projects.locations.services.html">services()</a></code>
+</p>
+<p class="firstline">Returns the services Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: &quot;us-east1&quot;.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: &quot;projects/example-project/locations/us-east1&quot;
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in AIP-160 (https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the next_page_token field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: &quot;us-east1&quot;.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: &quot;projects/example-project/locations/us-east1&quot;
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.projects.locations.operations.html b/docs/dyn/metastore_v1beta.projects.locations.operations.html
new file mode 100644
index 0000000..f8d3080
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.projects.locations.operations.html
@@ -0,0 +1,208 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a> . <a href="metastore_v1beta.projects.html">projects</a> . <a href="metastore_v1beta.projects.locations.html">locations</a> . <a href="metastore_v1beta.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as "/v1/{name=users/*}/operations" to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns google.rpc.Code.UNIMPLEMENTED.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for Empty is empty JSON object {}.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns UNIMPLEMENTED.NOTE: the name binding allows API services to override the binding to use different resource name schemes, such as users/*/operations. To override the binding, API services can add a binding such as &quot;/v1/{name=users/*}/operations&quot; to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+      &quot;response&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.projects.locations.services.backups.html b/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
new file mode 100644
index 0000000..15a33c9
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
@@ -0,0 +1,437 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a> . <a href="metastore_v1beta.projects.html">projects</a> . <a href="metastore_v1beta.projects.locations.html">locations</a> . <a href="metastore_v1beta.projects.locations.services.html">services</a> . <a href="metastore_v1beta.projects.locations.services.backups.html">backups</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, backupId=None, body=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Backup in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single backup.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single backup.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists backups in a service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, backupId=None, body=None, requestId=None, x__xgafv=None)</code>
+  <pre>Creates a new Backup in a given project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the service in which to create a backup of the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The details of a backup resource.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the backup was started.
+  &quot;description&quot;: &quot;A String&quot;, # The description of the backup.
+  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the backup finished creating.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}
+  &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
+    &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+    &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+      &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+        &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+          &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+        },
+        &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+        &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+      },
+      &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+    },
+    &quot;labels&quot;: { # User-defined labels for the metastore service.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+      &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+      &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+    },
+    &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+      &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+        &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+      },
+    },
+    &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+      &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+        { # The details of a metadata export operation.
+          &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+          &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+        },
+      ],
+      &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+        { # The details of a metadata restore operation.
+          &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+          &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+          &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+        },
+      ],
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+    &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+    &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+    &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+    &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+    &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+    &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the backup.
+}
+
+  backupId: string, Required. The ID of the backup, which is used as the final component of the backup&#x27;s name.This value must be between 1 and 64 characters long, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Deletes a single backup.
+
+Args:
+  name: string, Required. The relative resource name of the backup to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}. (required)
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single backup.
+
+Args:
+  name: string, Required. The relative resource name of the backup to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The details of a backup resource.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the backup was started.
+  &quot;description&quot;: &quot;A String&quot;, # The description of the backup.
+  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the backup finished creating.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}
+  &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
+    &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+    &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+      &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+        &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+          &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+        },
+        &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+        &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+      },
+      &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+    },
+    &quot;labels&quot;: { # User-defined labels for the metastore service.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+      &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+      &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+    },
+    &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+      &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+        &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+      },
+    },
+    &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+      &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+        { # The details of a metadata export operation.
+          &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+          &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+        },
+      ],
+      &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+        { # The details of a metadata restore operation.
+          &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+          &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+          &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+          &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+          &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+          &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+        },
+      ],
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+    &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+    &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+    &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+    &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+    &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+    &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the backup.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists backups in a service.
+
+Args:
+  parent: string, Required. The relative resource name of the service whose backups to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups. (required)
+  filter: string, Optional. The filter to apply to list results.
+  orderBy: string, Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.
+  pageSize: integer, Optional. The maximum number of backups to return. The response may contain less than the maximum number. If unspecified, no more than 500 backups are returned. The maximum value is 1000; values above 1000 are changed to 1000.
+  pageToken: string, Optional. A page token, received from a previous DataprocMetastore.ListBackups call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListBackups must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for DataprocMetastore.ListBackups.
+  &quot;backups&quot;: [ # The backups of the specified service.
+    { # The details of a backup resource.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the backup was started.
+      &quot;description&quot;: &quot;A String&quot;, # The description of the backup.
+      &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the backup finished creating.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the backup, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}
+      &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
+        &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+        &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+        &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+        &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+          &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+            &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+              &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+            },
+            &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+            &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+          },
+          &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+        },
+        &quot;labels&quot;: { # User-defined labels for the metastore service.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+          &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+          &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+        },
+        &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+          &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+            &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+          },
+        },
+        &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+          &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+            { # The details of a metadata export operation.
+              &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+              &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+              &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+              &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+              &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+            },
+          ],
+          &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+            { # The details of a metadata restore operation.
+              &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+              &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+              &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+              &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+              &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+              &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+            },
+          ],
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+        &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+        &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+        &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+        &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+        &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+        &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+      },
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the backup.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.projects.locations.services.html b/docs/dyn/metastore_v1beta.projects.locations.services.html
new file mode 100644
index 0000000..130eaaa
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.projects.locations.services.html
@@ -0,0 +1,796 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a> . <a href="metastore_v1beta.projects.html">projects</a> . <a href="metastore_v1beta.projects.locations.html">locations</a> . <a href="metastore_v1beta.projects.locations.services.html">services</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="metastore_v1beta.projects.locations.services.backups.html">backups()</a></code>
+</p>
+<p class="firstline">Returns the backups Resource.</p>
+
+<p class="toc_element">
+  <code><a href="metastore_v1beta.projects.locations.services.metadataImports.html">metadataImports()</a></code>
+</p>
+<p class="firstline">Returns the metadataImports Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, requestId=None, serviceId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a metastore service in a project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single service.</p>
+<p class="toc_element">
+  <code><a href="#exportMetadata">exportMetadata(service, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Exports metadata from a service.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the details of a single service.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists services in a project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single service.</p>
+<p class="toc_element">
+  <code><a href="#restore">restore(service, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Restores a service from a backup.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, requestId=None, serviceId=None, x__xgafv=None)</code>
+  <pre>Creates a metastore service in a project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the location in which to create a metastore service, in the following form:projects/{project_number}/locations/{location_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A managed metastore service that serves metadata queries.
+  &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+  &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+    &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+      &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+        &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+      },
+      &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+      &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+    },
+    &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+  },
+  &quot;labels&quot;: { # User-defined labels for the metastore service.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+    &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+  },
+  &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+    &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+      &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+    },
+  },
+  &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+    &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+      { # The details of a metadata export operation.
+        &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+        &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+      },
+    ],
+    &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+      { # The details of a metadata restore operation.
+        &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+        &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+  &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+  &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+  &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+  &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+  &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+  &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+}
+
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  serviceId: string, Required. The ID of the metastore service, which is used as the final component of the metastore service&#x27;s name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Deletes a single service.
+
+Args:
+  name: string, Required. The relative resource name of the metastore service to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="exportMetadata">exportMetadata(service, body=None, x__xgafv=None)</code>
+  <pre>Exports metadata from a service.
+
+Args:
+  service: string, Required. The relative resource name of the metastore service to run export, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for DataprocMetastore.ExportMetadata.
+  &quot;databaseDumpType&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  &quot;destinationGcsFolder&quot;: &quot;A String&quot;, # A Cloud Storage URI of a folder, in the format gs:///. A sub-folder containing exported files will be created below it.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the details of a single service.
+
+Args:
+  name: string, Required. The relative resource name of the metastore service to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A managed metastore service that serves metadata queries.
+  &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+  &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+    &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+      &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+        &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+      },
+      &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+      &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+    },
+    &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+  },
+  &quot;labels&quot;: { # User-defined labels for the metastore service.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+    &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+  },
+  &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+    &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+      &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+    },
+  },
+  &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+    &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+      { # The details of a metadata export operation.
+        &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+        &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+      },
+    ],
+    &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+      { # The details of a metadata restore operation.
+        &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+        &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+  &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+  &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+  &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+  &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+  &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+  &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned.Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected.Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
+    { # Associates members with a role.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # 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.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists services in a project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the location of metastore services to list, in the following form:projects/{project_number}/locations/{location_id}. (required)
+  filter: string, Optional. The filter to apply to list results.
+  orderBy: string, Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.
+  pageSize: integer, Optional. The maximum number of services to return. The response may contain less than the maximum number. If unspecified, no more than 500 services are returned. The maximum value is 1000; values above 1000 are changed to 1000.
+  pageToken: string, Optional. A page token, received from a previous DataprocMetastore.ListServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListServices must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for DataprocMetastore.ListServices.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;services&quot;: [ # The services in the specified location.
+    { # A managed metastore service that serves metadata queries.
+      &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+      &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+      &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+        &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+        &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+          &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+            &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+          },
+          &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+          &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+        },
+        &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+      },
+      &quot;labels&quot;: { # User-defined labels for the metastore service.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+        &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+        &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+      },
+      &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+        &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+          &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+        },
+      },
+      &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+        &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+          { # The details of a metadata export operation.
+            &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+            &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+            &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+            &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+            &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+          },
+        ],
+        &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+          { # The details of a metadata restore operation.
+            &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+            &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+            &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+            &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+            &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+            &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+          },
+        ],
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+      &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+      &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+      &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+      &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+      &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+      &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+    },
+  ],
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single service.
+
+Args:
+  name: string, Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A managed metastore service that serves metadata queries.
+  &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
+  &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
+    &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;kerberosConfig&quot;: { # Configuration information for a Kerberos principal. # Information used to configure the Hive metastore service as a service principal in a Kerberos realm. To disable Kerberos, use the UpdateService method and specify this field&#x27;s path (hive_metastore_config.kerberos_config) in the request&#x27;s update_mask while omitting this field from the request&#x27;s service.
+      &quot;keytab&quot;: { # A securely stored value. # A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).
+        &quot;cloudSecret&quot;: &quot;A String&quot;, # The relative resource name of a Secret Manager secret version, in the following form:projects/{project_number}/secrets/{secret_id}/versions/{version_id}.
+      },
+      &quot;krb5ConfigGcsUri&quot;: &quot;A String&quot;, # A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.
+      &quot;principal&quot;: &quot;A String&quot;, # A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form primary/instance@REALM, but there is no exact format.
+    },
+    &quot;version&quot;: &quot;A String&quot;, # Immutable. The Hive metastore schema version.
+  },
+  &quot;labels&quot;: { # User-defined labels for the metastore service.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when Dataproc Metastore may perform system maintenance operation to the service. # The one hour maintenance window of the metastore service. This specifies when the service can be restarted for maintenance purposes in UTC time.
+    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of week, when the window starts.
+    &quot;hourOfDay&quot;: 42, # The hour of day (0-23) when the window starts.
+  },
+  &quot;metadataIntegration&quot;: { # Specifies how metastore metadata should be integrated with external services. # The setting that defines how metastore metadata should be integrated with external services and systems.
+    &quot;dataCatalogConfig&quot;: { # Specifies how metastore metadata should be integrated with the Data Catalog service. # The integration config for the Data Catalog service.
+      &quot;enabled&quot;: True or False, # Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.
+    },
+  },
+  &quot;metadataManagementActivity&quot;: { # The metadata management activities of the metastore service. # Output only. The metadata management activities of the metastore service.
+    &quot;metadataExports&quot;: [ # Output only. The latest metadata exports of the metastore service.
+      { # The details of a metadata export operation.
+        &quot;databaseDumpType&quot;: &quot;A String&quot;, # Output only. The type of the database dump.
+        &quot;destinationGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI of a folder that metadata are exported to, in the form of gs:////, where is automatically generated.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the export ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the export started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the export.
+      },
+    ],
+    &quot;restores&quot;: [ # Output only. The latest restores of the metastore service.
+      { # The details of a metadata restore operation.
+        &quot;backup&quot;: &quot;A String&quot;, # Output only. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+        &quot;details&quot;: &quot;A String&quot;, # Output only. The restore details containing the revision of the service to be restored to, in format of JSON.
+        &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time when the restore ended.
+        &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time when the restore started.
+        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the restore.
+        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of restore.
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.
+  &quot;network&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the VPC network on which the instance can be accessed. It is specified in the following form:projects/{project_number}/global/networks/{network_id}.
+  &quot;port&quot;: 42, # The TCP port at which the metastore service is reached. Default: 9083.
+  &quot;releaseChannel&quot;: &quot;A String&quot;, # Immutable. The release channel of the service. If unspecified, defaults to STABLE.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metastore service.
+  &quot;stateMessage&quot;: &quot;A String&quot;, # Output only. Additional information about the current state of the metastore service, if available.
+  &quot;tier&quot;: &quot;A String&quot;, # The tier of the service.
+  &quot;uid&quot;: &quot;A String&quot;, # Output only. The globally unique resource identifier of the metastore service.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was last updated.
+}
+
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  updateMask: string, Required. A field mask used to specify the fields to be overwritten in the metastore service resource by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="restore">restore(service, body=None, x__xgafv=None)</code>
+  <pre>Restores a service from a backup.
+
+Args:
+  service: string, Required. The relative resource name of the metastore service to run restore, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for DataprocMetastore.Restore.
+  &quot;backup&quot;: &quot;A String&quot;, # Required. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.
+  &quot;requestId&quot;: &quot;A String&quot;, # Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format). A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  &quot;restoreType&quot;: &quot;A String&quot;, # Optional. The type of restore. If unspecified, defaults to METADATA_ONLY.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for SetIamPolicy method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
+      { # Associates members with a role.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # 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.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used:paths: &quot;bindings, etag&quot;
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions; each role can be an IAM predefined role or a user-created custom role.For some types of Google Cloud resources, a binding can also specify a condition, which is a logical expression that allows access to a resource only if the expression evaluates to true. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).JSON example: { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } YAML example: bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the IAM documentation (https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, storage.googleapis.com, cloudsql.googleapis.com. allServices is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of members to a role. Optionally, may specify a condition that determines how and when the bindings are applied. Each of the bindings must contain at least one member.
+    { # Associates members with a role.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec.Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to members. For example, roles/viewer, roles/editor, or roles/owner.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # 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.Important: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy.Valid values are 0, 1, and 3. Requests that specify an invalid value are rejected.Any operation that affects conditional role bindings must specify version 3. This requirement applies to the following operations: Getting a policy that includes a conditional role binding Adding a conditional role binding to a policy Changing a conditional role binding in a policy Removing any role binding, with or without a condition, from a policy that includes conditionsImportant: If you use IAM Conditions, you must include the etag field whenever you call setIamPolicy. If you omit this field, then IAM allows you to overwrite a version 3 policy with a version 1 policy, and all of the conditions in the version 3 policy are lost.If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for TestIamPermissions method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the resource. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for TestIamPermissions method.
+  &quot;permissions&quot;: [ # A subset of TestPermissionsRequest.permissions that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/metastore_v1beta.projects.locations.services.metadataImports.html b/docs/dyn/metastore_v1beta.projects.locations.services.metadataImports.html
new file mode 100644
index 0000000..ccdffdb
--- /dev/null
+++ b/docs/dyn/metastore_v1beta.projects.locations.services.metadataImports.html
@@ -0,0 +1,293 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="metastore_v1beta.html">Dataproc Metastore API</a> . <a href="metastore_v1beta.projects.html">projects</a> . <a href="metastore_v1beta.projects.locations.html">locations</a> . <a href="metastore_v1beta.projects.locations.services.html">services</a> . <a href="metastore_v1beta.projects.locations.services.metadataImports.html">metadataImports</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, metadataImportId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new MetadataImport 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">Gets details of a single import.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists imports in a service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a single import. Only the description field of MetadataImport is supported to be updated.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, metadataImportId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Creates a new MetadataImport in a given project and location.
+
+Args:
+  parent: string, Required. The relative resource name of the service in which to create a metastore import, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A metastore resource that imports metadata.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+  &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+    &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+    &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+    &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+    &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  },
+  &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+}
+
+  metadataImportId: string, Required. The ID of the metadata import, which is used as the final component of the metadata import&#x27;s name.This value must be between 1 and 64 characters long, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single import.
+
+Args:
+  name: string, Required. The relative resource name of the metadata import to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A metastore resource that imports metadata.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+  &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+    &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+    &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+    &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+    &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  },
+  &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists imports in a service.
+
+Args:
+  parent: string, Required. The relative resource name of the service whose metadata imports to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports. (required)
+  filter: string, Optional. The filter to apply to list results.
+  orderBy: string, Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.
+  pageSize: integer, Optional. The maximum number of imports to return. The response may contain less than the maximum number. If unspecified, no more than 500 imports are returned. The maximum value is 1000; values above 1000 are changed to 1000.
+  pageToken: string, Optional. A page token, received from a previous DataprocMetastore.ListServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListServices must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for DataprocMetastore.ListMetadataImports.
+  &quot;metadataImports&quot;: [ # The imports in the specified service.
+    { # A metastore resource that imports metadata.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+      &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+        &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+        &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+        &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+        &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+      },
+      &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a single import. Only the description field of MetadataImport is supported to be updated.
+
+Args:
+  name: string, Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A metastore resource that imports metadata.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was created.
+  &quot;databaseDump&quot;: { # A specification of the location of and metadata about a database dump from a relational database management system. # Immutable. A database dump from a pre-existing metastore&#x27;s database.
+    &quot;databaseType&quot;: &quot;A String&quot;, # The type of the database.
+    &quot;gcsUri&quot;: &quot;A String&quot;, # A Cloud Storage object or folder URI that specifies the source from which to import metadata. It must begin with gs://.
+    &quot;sourceDatabase&quot;: &quot;A String&quot;, # The name of the source database.
+    &quot;type&quot;: &quot;A String&quot;, # Optional. The type of the database dump. If unspecified, defaults to MYSQL.
+  },
+  &quot;description&quot;: &quot;A String&quot;, # The description of the metadata import.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The relative resource name of the metadata import, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the metadata import.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the metadata import was last updated.
+}
+
+  requestId: string, Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
+  updateMask: string, Required. A field mask used to specify the fields to be overwritten in the metadata import resource by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with operations/{unique_id}.
+  &quot;response&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/monitoring_v3.folders.timeSeries.html b/docs/dyn/monitoring_v3.folders.timeSeries.html
index 4d8f0b5..1c5284b 100644
--- a/docs/dyn/monitoring_v3.folders.timeSeries.html
+++ b/docs/dyn/monitoring_v3.folders.timeSeries.html
@@ -94,7 +94,7 @@
   <pre>Lists time series that match a filter. This method does not require a Workspace.
 
 Args:
-  name: string, Required. The project, organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name), organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]  (required)
   aggregation_alignmentPeriod: string, The alignment_period specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.The value must be at least 60 seconds. If a per-series aligner other than ALIGN_NONE is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner ALIGN_NONE is specified, then this field is ignored.The maximum value of the alignment_period is 104 weeks (2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.
   aggregation_crossSeriesReducer: string, The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.Not all reducer operations can be applied to all time series. The valid choices depend on the metric_kind and the value_type of the original time series. Reduction can yield a time series with a different metric_kind or value_type than the input time series.Time series data must first be aligned (see per_series_aligner) in order to perform cross-time series reduction. If cross_series_reducer is specified, then per_series_aligner must be specified, and must not be ALIGN_NONE. An alignment_period must also be specified; otherwise, an error is returned.
     Allowed values
@@ -275,7 +275,7 @@
           },
         },
       ],
-      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
+      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. For more information, see Monitored resources for custom metrics (https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).
         &quot;labels&quot;: { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels &quot;project_id&quot;, &quot;instance_id&quot;, and &quot;zone&quot;.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
diff --git a/docs/dyn/monitoring_v3.organizations.timeSeries.html b/docs/dyn/monitoring_v3.organizations.timeSeries.html
index b60cc34..b44e626 100644
--- a/docs/dyn/monitoring_v3.organizations.timeSeries.html
+++ b/docs/dyn/monitoring_v3.organizations.timeSeries.html
@@ -94,7 +94,7 @@
   <pre>Lists time series that match a filter. This method does not require a Workspace.
 
 Args:
-  name: string, Required. The project, organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name), organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]  (required)
   aggregation_alignmentPeriod: string, The alignment_period specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.The value must be at least 60 seconds. If a per-series aligner other than ALIGN_NONE is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner ALIGN_NONE is specified, then this field is ignored.The maximum value of the alignment_period is 104 weeks (2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.
   aggregation_crossSeriesReducer: string, The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.Not all reducer operations can be applied to all time series. The valid choices depend on the metric_kind and the value_type of the original time series. Reduction can yield a time series with a different metric_kind or value_type than the input time series.Time series data must first be aligned (see per_series_aligner) in order to perform cross-time series reduction. If cross_series_reducer is specified, then per_series_aligner must be specified, and must not be ALIGN_NONE. An alignment_period must also be specified; otherwise, an error is returned.
     Allowed values
@@ -275,7 +275,7 @@
           },
         },
       ],
-      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
+      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. For more information, see Monitored resources for custom metrics (https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).
         &quot;labels&quot;: { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels &quot;project_id&quot;, &quot;instance_id&quot;, and &quot;zone&quot;.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
diff --git a/docs/dyn/monitoring_v3.projects.alertPolicies.html b/docs/dyn/monitoring_v3.projects.alertPolicies.html
index 6d35c19..ac12898 100644
--- a/docs/dyn/monitoring_v3.projects.alertPolicies.html
+++ b/docs/dyn/monitoring_v3.projects.alertPolicies.html
@@ -106,7 +106,7 @@
   <pre>Creates a new alerting policy.
 
 Args:
-  name: string, Required. The project in which to create the alerting policy. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policy will be written, not the name of the created policy. |name| must be a host project of a workspace, otherwise INVALID_ARGUMENT error will return. The alerting policy that is returned will have a name that contains a normalized representation of this name as a prefix but adds a suffix of the form /alertPolicies/[ALERT_POLICY_ID], identifying the policy in the container. (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) in which to create the alerting policy. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policy will be written, not the name of the created policy. |name| must be a host project of a workspace, otherwise INVALID_ARGUMENT error will return. The alerting policy that is returned will have a name that contains a normalized representation of this name as a prefix but adds a suffix of the form /alertPolicies/[ALERT_POLICY_ID], identifying the policy in the container. (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -448,7 +448,7 @@
   <pre>Lists the existing alerting policies for the workspace.
 
 Args:
-  name: string, Required. The project whose alert policies are to be listed. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policies to be listed are stored. To retrieve a single alerting policy by name, use the GetAlertPolicy operation, instead. (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) whose alert policies are to be listed. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policies to be listed are stored. To retrieve a single alerting policy by name, use the GetAlertPolicy operation, instead. (required)
   filter: string, If provided, this field specifies the criteria that must be met by alert policies to be included in the response.For more details, see sorting and filtering (https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
   orderBy: string, A comma-separated list of fields by which to sort the result. Supports the same set of field references as the filter field. Entries can be prefixed with a minus sign to sort by the field in descending order.For more details, see sorting and filtering (https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
   pageSize: integer, The maximum number of results to return in a single response.
diff --git a/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html b/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
index 54caa65..7de7454 100644
--- a/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
+++ b/docs/dyn/monitoring_v3.projects.collectdTimeSeries.html
@@ -91,7 +91,7 @@
   <pre>Stackdriver Monitoring Agent only: Creates a new time series.This method is only for use by the Stackdriver Monitoring Agent. Use projects.timeSeries.create instead.
 
 Args:
-  name: string, The project in which to create the time series. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, The project (https://cloud.google.com/monitoring/api/v3#project_name) in which to create the time series. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   body: object, The request body.
     The object takes the form of:
 
diff --git a/docs/dyn/monitoring_v3.projects.groups.html b/docs/dyn/monitoring_v3.projects.groups.html
index 14c5d3d..2717341 100644
--- a/docs/dyn/monitoring_v3.projects.groups.html
+++ b/docs/dyn/monitoring_v3.projects.groups.html
@@ -111,7 +111,7 @@
   <pre>Creates a new group.
 
 Args:
-  name: string, Required. The project in which to create the group. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) in which to create the group. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -188,7 +188,7 @@
   <pre>Lists the existing groups.
 
 Args:
-  name: string, Required. The project whose groups are to be listed. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) whose groups are to be listed. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   ancestorsOfGroup: string, A group name. The format is: projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID] Returns groups that are ancestors of the specified group. The groups are returned in order, starting with the immediate parent and ending with the most distant ancestor. If the specified group has no immediate parent, the results are empty.
   childrenOfGroup: string, A group name. The format is: projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID] Returns groups whose parent_name field contains the group name. If no groups have this parent, the results are empty.
   descendantsOfGroup: string, A group name. The format is: projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID] Returns the descendants of the specified group. This is a superset of the results returned by the children_of_group filter, and includes children-of-children, and so forth.
diff --git a/docs/dyn/monitoring_v3.projects.metricDescriptors.html b/docs/dyn/monitoring_v3.projects.metricDescriptors.html
index 63ffcc9..a8ce17f 100644
--- a/docs/dyn/monitoring_v3.projects.metricDescriptors.html
+++ b/docs/dyn/monitoring_v3.projects.metricDescriptors.html
@@ -103,7 +103,7 @@
   <pre>Creates a new metric descriptor. User-created metric descriptors define custom metrics (https://cloud.google.com/monitoring/custom-metrics).
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: 4 projects/PROJECT_ID_OR_NUMBER (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -232,7 +232,7 @@
   <pre>Lists metric descriptors that match a filter. This method does not require a Workspace.
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   filter: string, If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the filter (https://cloud.google.com/monitoring/api/v3/filters) specifies which metric descriptors are to be returned. For example, the following filter matches all custom metrics (https://cloud.google.com/monitoring/custom-metrics): metric.type = starts_with(&quot;custom.googleapis.com/&quot;) 
   pageSize: integer, A positive number that is the maximum number of results to return.
   pageToken: string, If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
diff --git a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
index 7504a1c..b3ef233 100644
--- a/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
+++ b/docs/dyn/monitoring_v3.projects.monitoredResourceDescriptors.html
@@ -127,7 +127,7 @@
   <pre>Lists monitored resource descriptors that match a filter. This method does not require a Workspace.
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   filter: string, An optional filter (https://cloud.google.com/monitoring/api/v3/filters) describing the descriptors to be returned. The filter can reference the descriptor&#x27;s type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label: resource.type = starts_with(&quot;gce_&quot;) AND resource.label:id 
   pageSize: integer, A positive number that is the maximum number of results to return.
   pageToken: string, If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
diff --git a/docs/dyn/monitoring_v3.projects.notificationChannelDescriptors.html b/docs/dyn/monitoring_v3.projects.notificationChannelDescriptors.html
index 0b78ea5..fbbd941 100644
--- a/docs/dyn/monitoring_v3.projects.notificationChannelDescriptors.html
+++ b/docs/dyn/monitoring_v3.projects.notificationChannelDescriptors.html
@@ -127,7 +127,7 @@
   <pre>Lists the descriptors for supported channel types. The use of descriptors makes it possible for new channel types to be dynamically added.
 
 Args:
-  name: string, Required. The REST resource name of the parent from which to retrieve the notification channel descriptors. The expected syntax is: projects/[PROJECT_ID_OR_NUMBER] Note that this names the parent container in which to look for the descriptors; to retrieve a single descriptor by name, use the GetNotificationChannelDescriptor operation, instead. (required)
+  name: string, Required. The REST resource name of the parent from which to retrieve the notification channel descriptors. The expected syntax is: projects/[PROJECT_ID_OR_NUMBER] Note that this names (https://cloud.google.com/monitoring/api/v3#project_name) the parent container in which to look for the descriptors; to retrieve a single descriptor by name, use the GetNotificationChannelDescriptor operation, instead. (required)
   pageSize: integer, The maximum number of results to return in a single response. If not set to a positive number, a reasonable value will be chosen by the service.
   pageToken: string, If non-empty, page_token must contain a value returned as the next_page_token in a previous response to request the next set of results.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/monitoring_v3.projects.notificationChannels.html b/docs/dyn/monitoring_v3.projects.notificationChannels.html
index 86decd6..2ef8df9 100644
--- a/docs/dyn/monitoring_v3.projects.notificationChannels.html
+++ b/docs/dyn/monitoring_v3.projects.notificationChannels.html
@@ -115,7 +115,7 @@
   <pre>Creates a new notification channel, representing a single notification endpoint such as an email address, SMS number, or PagerDuty service.
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] This names the container into which the channel will be written, this does not name the newly created channel. The resulting channel&#x27;s name will have a normalized version of this field as a prefix, but will add /notificationChannels/[CHANNEL_ID] to identify the channel. (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] This names the container into which the channel will be written, this does not name the newly created channel. The resulting channel&#x27;s name will have a normalized version of this field as a prefix, but will add /notificationChannels/[CHANNEL_ID] to identify the channel. (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -269,7 +269,7 @@
   <pre>Lists the notification channels that have been created for the project.
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] This names the container in which to look for the notification channels; it does not name a specific channel. To query a specific channel by REST resource name, use the GetNotificationChannel operation. (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] This names the container in which to look for the notification channels; it does not name a specific channel. To query a specific channel by REST resource name, use the GetNotificationChannel operation. (required)
   filter: string, If provided, this field specifies the criteria that must be met by notification channels to be included in the response.For more details, see sorting and filtering (https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
   orderBy: string, A comma-separated list of fields by which to sort the result. Supports the same set of fields as in filter. Entries can be prefixed with a minus sign to sort in descending rather than ascending order.For more details, see sorting and filtering (https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
   pageSize: integer, The maximum number of results to return in a single response. If not set to a positive number, a reasonable value will be chosen by the service.
diff --git a/docs/dyn/monitoring_v3.projects.timeSeries.html b/docs/dyn/monitoring_v3.projects.timeSeries.html
index 06225e5..9e5212f 100644
--- a/docs/dyn/monitoring_v3.projects.timeSeries.html
+++ b/docs/dyn/monitoring_v3.projects.timeSeries.html
@@ -103,7 +103,7 @@
   <pre>Creates or adds data to one or more time series. The response is empty if all time series in the request were written. If any time series could not be written, a corresponding failure message is included in the error response.
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -179,7 +179,7 @@
           },
         },
       ],
-      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
+      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. For more information, see Monitored resources for custom metrics (https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).
         &quot;labels&quot;: { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels &quot;project_id&quot;, &quot;instance_id&quot;, and &quot;zone&quot;.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
@@ -208,7 +208,7 @@
   <pre>Lists time series that match a filter. This method does not require a Workspace.
 
 Args:
-  name: string, Required. The project, organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name), organization or folder on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] organizations/[ORGANIZATION_ID] folders/[FOLDER_ID]  (required)
   aggregation_alignmentPeriod: string, The alignment_period specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.The value must be at least 60 seconds. If a per-series aligner other than ALIGN_NONE is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner ALIGN_NONE is specified, then this field is ignored.The maximum value of the alignment_period is 104 weeks (2 years) for charts, and 90,000 seconds (25 hours) for alerting policies.
   aggregation_crossSeriesReducer: string, The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.Not all reducer operations can be applied to all time series. The valid choices depend on the metric_kind and the value_type of the original time series. Reduction can yield a time series with a different metric_kind or value_type than the input time series.Time series data must first be aligned (see per_series_aligner) in order to perform cross-time series reduction. If cross_series_reducer is specified, then per_series_aligner must be specified, and must not be ALIGN_NONE. An alignment_period must also be specified; otherwise, an error is returned.
     Allowed values
@@ -389,7 +389,7 @@
           },
         },
       ],
-      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
+      &quot;resource&quot;: { # 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&#x27;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 &quot;gce_instance&quot; has labels &quot;instance_id&quot; and &quot;zone&quot;: { &quot;type&quot;: &quot;gce_instance&quot;, &quot;labels&quot;: { &quot;instance_id&quot;: &quot;12345678901234&quot;, &quot;zone&quot;: &quot;us-central1-a&quot; }} # The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. For more information, see Monitored resources for custom metrics (https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).
         &quot;labels&quot;: { # Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels &quot;project_id&quot;, &quot;instance_id&quot;, and &quot;zone&quot;.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
@@ -422,7 +422,7 @@
   <pre>Queries time series using Monitoring Query Language. This method does not require a Workspace.
 
 Args:
-  name: string, Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  name: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   body: object, The request body.
     The object takes the form of:
 
diff --git a/docs/dyn/monitoring_v3.projects.uptimeCheckConfigs.html b/docs/dyn/monitoring_v3.projects.uptimeCheckConfigs.html
index 679bdb5..75898e2 100644
--- a/docs/dyn/monitoring_v3.projects.uptimeCheckConfigs.html
+++ b/docs/dyn/monitoring_v3.projects.uptimeCheckConfigs.html
@@ -106,7 +106,7 @@
   <pre>Creates a new Uptime check configuration.
 
 Args:
-  parent: string, Required. The project in which to create the Uptime check. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  parent: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) in which to create the Uptime check. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -328,7 +328,7 @@
   <pre>Lists the existing valid Uptime check configurations for the project (leaving out any invalid configurations).
 
 Args:
-  parent: string, Required. The project whose Uptime check configurations are listed. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  parent: string, Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) whose Uptime check configurations are listed. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   pageSize: integer, The maximum number of results to return in a single response. The server may further constrain the maximum number of results returned in a single page. If the page_size is &lt;=0, the server will decide the number of results to be returned.
   pageToken: string, If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return more results from the previous method call.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/monitoring_v3.services.html b/docs/dyn/monitoring_v3.services.html
index 6ffe6ab..0a1109a 100644
--- a/docs/dyn/monitoring_v3.services.html
+++ b/docs/dyn/monitoring_v3.services.html
@@ -111,7 +111,7 @@
   <pre>Create a Service.
 
 Args:
-  parent: string, Required. Resource name of the parent workspace. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
+  parent: string, Required. Resource name (https://cloud.google.com/monitoring/api/v3#project_name) of the parent workspace. The format is: projects/[PROJECT_ID_OR_NUMBER]  (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -259,7 +259,7 @@
   <pre>List Services for this workspace.
 
 Args:
-  parent: string, Required. Resource name of the parent containing the listed services, either a project or a Monitoring Workspace. The formats are: projects/[PROJECT_ID_OR_NUMBER] workspaces/[HOST_PROJECT_ID_OR_NUMBER]  (required)
+  parent: string, Required. Resource name of the parent containing the listed services, either a project (https://cloud.google.com/monitoring/api/v3#project_name) or a Monitoring Workspace. The formats are: projects/[PROJECT_ID_OR_NUMBER] workspaces/[HOST_PROJECT_ID_OR_NUMBER]  (required)
   filter: string, A filter specifying what Services to return. The filter currently supports the following fields: - `identifier_case` - `app_engine.module_id` - `cloud_endpoints.service` (reserved for future use) - `mesh_istio.mesh_uid` - `mesh_istio.service_namespace` - `mesh_istio.service_name` - `cluster_istio.location` (deprecated) - `cluster_istio.cluster_name` (deprecated) - `cluster_istio.service_namespace` (deprecated) - `cluster_istio.service_name` (deprecated) identifier_case refers to which option in the identifier oneof is populated. For example, the filter identifier_case = &quot;CUSTOM&quot; would match all services with a value for the custom field. Valid options are &quot;CUSTOM&quot;, &quot;APP_ENGINE&quot;, &quot;MESH_ISTIO&quot;, plus &quot;CLUSTER_ISTIO&quot; (deprecated) and &quot;CLOUD_ENDPOINTS&quot; (reserved for future use).
   pageSize: integer, A non-negative number that is the maximum number of results to return. When 0, use default page size.
   pageToken: string, If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.
diff --git a/docs/dyn/mybusinessaccountmanagement_v1.accounts.admins.html b/docs/dyn/mybusinessaccountmanagement_v1.accounts.admins.html
new file mode 100644
index 0000000..a808875
--- /dev/null
+++ b/docs/dyn/mybusinessaccountmanagement_v1.accounts.admins.html
@@ -0,0 +1,207 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinessaccountmanagement_v1.html">My Business Account Management API</a> . <a href="mybusinessaccountmanagement_v1.accounts.html">accounts</a> . <a href="mybusinessaccountmanagement_v1.accounts.admins.html">admins</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Invites the specified user to become an administrator for the specified account. The invitee must accept the invitation in order to be granted access to the account. See AcceptInvitation to programmatically accept an invitation.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes the specified admin from the specified account.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the admins for the specified account.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Admin for the specified Account Admin.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Invites the specified user to become an administrator for the specified account. The invitee must accept the invitation in order to be granted access to the account. See AcceptInvitation to programmatically accept an invitation.
+
+Args:
+  parent: string, Required. The resource name of the account this admin is created for. `accounts/{account_id}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Removes the specified admin from the specified account.
+
+Args:
+  name: string, Required. The resource name of the admin to remove from the account. `accounts/{account_id}/admins/{admin_id}`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, x__xgafv=None)</code>
+  <pre>Lists the admins for the specified account.
+
+Args:
+  parent: string, Required. The name of the account from which to retrieve a list of admins. `accounts/{account_id}/admins`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for AccessControl.ListAccountAdmins.
+  &quot;accountAdmins&quot;: [ # A collection of Admin instances.
+    { # An administrator of an Account or a location.
+      &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+      &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+      &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the Admin for the specified Account Admin.
+
+Args:
+  name: string, Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}
+
+  updateMask: string, Required. The specific fields that should be updated. The only editable field is role.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinessaccountmanagement_v1.accounts.html b/docs/dyn/mybusinessaccountmanagement_v1.accounts.html
new file mode 100644
index 0000000..245c665
--- /dev/null
+++ b/docs/dyn/mybusinessaccountmanagement_v1.accounts.html
@@ -0,0 +1,398 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinessaccountmanagement_v1.html">My Business Account Management API</a> . <a href="mybusinessaccountmanagement_v1.accounts.html">accounts</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mybusinessaccountmanagement_v1.accounts.admins.html">admins()</a></code>
+</p>
+<p class="firstline">Returns the admins Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mybusinessaccountmanagement_v1.accounts.invitations.html">invitations()</a></code>
+</p>
+<p class="firstline">Returns the invitations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates an account with the specified name and type under the given parent. - Personal accounts and Organizations cannot be created. - User Groups cannot be created with a Personal account as primary owner. - Location Groups cannot be created with a primary owner of a Personal account if the Personal account is in an Organization. - Location Groups cannot own Location Groups.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified account. Returns `NOT_FOUND` if the account does not exist or if the caller does not have access rights to it.</p>
+<p class="toc_element">
+  <code><a href="#list">list(filter=None, pageSize=None, pageToken=None, parentAccount=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all of the accounts for the authenticated user. This includes all accounts that the user owns, as well as any accounts for which the user has management rights.</p>
+<p class="toc_element">
+  <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, body=None, updateMask=None, validateOnly=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the specified business account. Personal accounts cannot be updated using this method.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(body=None, x__xgafv=None)</code>
+  <pre>Creates an account with the specified name and type under the given parent. - Personal accounts and Organizations cannot be created. - User Groups cannot be created with a Personal account as primary owner. - Location Groups cannot be created with a primary owner of a Personal account if the Personal account is in an Organization. - Location Groups cannot own Location Groups.
+
+Args:
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325).
+  &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+  &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+  &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+    &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+      &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+        &quot;A String&quot;,
+      ],
+      &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+      &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+      &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+      &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+      &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+        &quot;A String&quot;,
+      ],
+      &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+      &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+      &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+      &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+    },
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+    &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+  },
+  &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+  &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+  &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+  &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+  &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+  &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325).
+  &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+  &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+  &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+    &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+      &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+        &quot;A String&quot;,
+      ],
+      &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+      &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+      &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+      &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+      &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+        &quot;A String&quot;,
+      ],
+      &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+      &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+      &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+      &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+    },
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+    &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+  },
+  &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+  &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+  &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+  &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+  &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+  &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified account. Returns `NOT_FOUND` if the account does not exist or if the caller does not have access rights to it.
+
+Args:
+  name: string, Required. The name of the account to fetch. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325).
+  &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+  &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+  &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+    &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+      &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+        &quot;A String&quot;,
+      ],
+      &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+      &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+      &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+      &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+      &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+        &quot;A String&quot;,
+      ],
+      &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+      &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+      &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+      &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+    },
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+    &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+  },
+  &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+  &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+  &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+  &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+  &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+  &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(filter=None, pageSize=None, pageToken=None, parentAccount=None, x__xgafv=None)</code>
+  <pre>Lists all of the accounts for the authenticated user. This includes all accounts that the user owns, as well as any accounts for which the user has management rights.
+
+Args:
+  filter: string, Optional. A filter constraining the accounts to return. The response includes only entries that match the filter. If `filter` is empty, then no constraints are applied and all accounts (paginated) are retrieved for the requested account. For example, a request with the filter `type=USER_GROUP` will only return user groups. The `type` field is the only supported filter.
+  pageSize: integer, Optional. How many accounts to fetch per page. The minimum supported page_size is 2. The default and maximum is 20.
+  pageToken: string, Optional. If specified, the next page of accounts is retrieved. The `pageToken` is returned when a call to `accounts.list` returns more results than can fit into the requested page size.
+  parentAccount: string, Optional. The resource name of the account for which the list of directly accessible accounts is to be retrieved. This only makes sense for Organizations and User Groups. If empty, will return `ListAccounts` for the authenticated user. `accounts/{account_id}`.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Accounts.ListAccounts.
+  &quot;accounts&quot;: [ # A collection of accounts to which the user has access. The personal account of the user doing the query will always be the first item of the result, unless it is filtered out.
+    { # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325).
+      &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+      &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+      &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+        &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+          &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+            &quot;A String&quot;,
+          ],
+          &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+          &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+          &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+          &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+          &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+          &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+            &quot;A String&quot;,
+          ],
+          &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+          &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+          &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+          &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+        },
+        &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+        &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+      },
+      &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+      &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+      &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+      &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+      &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+      &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # If the number of accounts exceeds the requested page size, this field is populated with a token to fetch the next page of accounts on a subsequent call to `accounts.list`. If there are no more accounts, this field is not present in the response.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, validateOnly=None, x__xgafv=None)</code>
+  <pre>Updates the specified business account. Personal accounts cannot be updated using this method.
+
+Args:
+  name: string, Immutable. The resource name, in the format `accounts/{account_id}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325).
+  &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+  &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+  &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+    &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+      &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+        &quot;A String&quot;,
+      ],
+      &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+      &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+      &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+      &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+      &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+        &quot;A String&quot;,
+      ],
+      &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+      &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+      &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+      &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+    },
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+    &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+  },
+  &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+  &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+  &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+  &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+  &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+  &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+}
+
+  updateMask: string, Required. The specific fields that should be updated. The only editable field is `accountName`.
+  validateOnly: boolean, Optional. If true, the request is validated without actually updating the account.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325).
+  &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+  &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+  &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+    &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+      &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+        &quot;A String&quot;,
+      ],
+      &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+      &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+      &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+      &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+      &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+      &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+        &quot;A String&quot;,
+      ],
+      &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+      &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+      &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+      &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+    },
+    &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+    &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+  },
+  &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+  &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+  &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+  &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+  &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+  &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinessaccountmanagement_v1.accounts.invitations.html b/docs/dyn/mybusinessaccountmanagement_v1.accounts.invitations.html
new file mode 100644
index 0000000..57a6ee0
--- /dev/null
+++ b/docs/dyn/mybusinessaccountmanagement_v1.accounts.invitations.html
@@ -0,0 +1,205 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinessaccountmanagement_v1.html">My Business Account Management API</a> . <a href="mybusinessaccountmanagement_v1.accounts.html">accounts</a> . <a href="mybusinessaccountmanagement_v1.accounts.invitations.html">invitations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#accept">accept(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Accepts the specified invitation.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#decline">decline(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Declines the specified invitation.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists pending invitations for the specified account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="accept">accept(name, body=None, x__xgafv=None)</code>
+  <pre>Accepts the specified invitation.
+
+Args:
+  name: string, Required. The name of the invitation that is being accepted. `accounts/{account_id}/invitations/{invitation_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for AccessControl.AcceptInvitation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="decline">decline(name, body=None, x__xgafv=None)</code>
+  <pre>Declines the specified invitation.
+
+Args:
+  name: string, Required. The name of the account invitation that is being declined. `accounts/{account_id}/invitations/{invitation_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for AccessControl.DeclineInvitation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, x__xgafv=None)</code>
+  <pre>Lists pending invitations for the specified account.
+
+Args:
+  parent: string, Required. The name of the account from which the list of invitations is being retrieved. `accounts/{account_id}/invitations` (required)
+  filter: string, Optional. Filtering the response is supported via the Invitation.target_type field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for AccessControl.ListInvitations.
+  &quot;invitations&quot;: [ # A collection of invitations that are pending for the account. The number of invitations listed here cannot exceed 1000.
+    { # Represents a pending invitation.
+      &quot;name&quot;: &quot;A String&quot;, # Required. The resource name for the invitation. `accounts/{account_id}/invitations/{invitation_id}`.
+      &quot;role&quot;: &quot;A String&quot;, # Output only. The invited role on the account.
+      &quot;targetAccount&quot;: { # An account is a container for your location. If you are the only user who manages locations for your business, you can use your personal Google Account. To share management of locations with multiple users, [create a business account] (https://support.google.com/business/answer/6085339?ref_topic=6085325). # The sparsely populated account this invitation is for.
+        &quot;accountName&quot;: &quot;A String&quot;, # Required. The name of the account. For an account of type `PERSONAL`, this is the first and last name of the user account.
+        &quot;accountNumber&quot;: &quot;A String&quot;, # Output only. Account reference number if provisioned.
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name, in the format `accounts/{account_id}`.
+        &quot;organizationInfo&quot;: { # Additional information stored for an organization. # Output only. Additional info for an organization. This is populated only for an organization account.
+          &quot;address&quot;: { # Represents a postal address, e.g. for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created via user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an i18n-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, please see: https://support.google.com/business/answer/6397478 # Output only. The postal address for the account.
+            &quot;addressLines&quot;: [ # Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (e.g. &quot;Austin, TX&quot;), it is important that the line order is clear. The order of address lines should be &quot;envelope order&quot; for the country/region of the address. In places where this can vary (e.g. Japan), address_language is used to make it explicit (e.g. &quot;ja&quot; for large-to-small ordering and &quot;ja-Latn&quot; or &quot;en&quot; for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).
+              &quot;A String&quot;,
+            ],
+            &quot;administrativeArea&quot;: &quot;A String&quot;, # Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (e.g. &quot;Barcelona&quot; and not &quot;Catalonia&quot;). Many countries don&#x27;t use an administrative area in postal addresses. E.g. in Switzerland this should be left unpopulated.
+            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address&#x27; country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: &quot;zh-Hant&quot;, &quot;ja&quot;, &quot;ja-Latn&quot;, &quot;en&quot;.
+            &quot;locality&quot;: &quot;A String&quot;, # Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.
+            &quot;organization&quot;: &quot;A String&quot;, # Optional. The name of the organization at the address.
+            &quot;postalCode&quot;: &quot;A String&quot;, # Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).
+            &quot;recipients&quot;: [ # Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain &quot;care of&quot; information.
+              &quot;A String&quot;,
+            ],
+            &quot;regionCode&quot;: &quot;A String&quot;, # Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: &quot;CH&quot; for Switzerland.
+            &quot;revision&quot;: 42, # The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.
+            &quot;sortingCode&quot;: &quot;A String&quot;, # Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like &quot;CEDEX&quot;, optionally followed by a number (e.g. &quot;CEDEX 7&quot;), or just a number alone, representing the &quot;sector code&quot; (Jamaica), &quot;delivery area indicator&quot; (Malawi) or &quot;post office indicator&quot; (e.g. Côte d&#x27;Ivoire).
+            &quot;sublocality&quot;: &quot;A String&quot;, # Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.
+          },
+          &quot;phoneNumber&quot;: &quot;A String&quot;, # Output only. The contact number for the organization.
+          &quot;registeredDomain&quot;: &quot;A String&quot;, # Output only. The registered domain for the account.
+        },
+        &quot;permissionLevel&quot;: &quot;A String&quot;, # Output only. Specifies the permission level the user has for this account.
+        &quot;primaryOwner&quot;: &quot;A String&quot;, # Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.
+        &quot;role&quot;: &quot;A String&quot;, # Output only. Specifies the AccountRole of this account.
+        &quot;type&quot;: &quot;A String&quot;, # Required. Contains the type of account. Accounts of type PERSONAL and ORGANIZATION cannot be created using this API.
+        &quot;verificationState&quot;: &quot;A String&quot;, # Output only. If verified, future locations that are created are automatically connected to Google Maps, and have Google+ pages created, without requiring moderation.
+        &quot;vettedState&quot;: &quot;A String&quot;, # Output only. Indicates whether the account is vetted by Google. A vetted account is able to verify locations via the VETTED_PARTNER method.
+      },
+      &quot;targetLocation&quot;: { # Represents a target location for a pending invitation. # The target location this invitation is for.
+        &quot;address&quot;: &quot;A String&quot;, # The address of the location to which the user is invited.
+        &quot;locationName&quot;: &quot;A String&quot;, # The name of the location to which the user is invited.
+      },
+      &quot;targetType&quot;: &quot;A String&quot;, # Output only. Specifies which target types should appear in the response.
+    },
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinessaccountmanagement_v1.html b/docs/dyn/mybusinessaccountmanagement_v1.html
new file mode 100644
index 0000000..8d86c61
--- /dev/null
+++ b/docs/dyn/mybusinessaccountmanagement_v1.html
@@ -0,0 +1,116 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinessaccountmanagement_v1.html">My Business Account Management API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mybusinessaccountmanagement_v1.accounts.html">accounts()</a></code>
+</p>
+<p class="firstline">Returns the accounts Resource.</p>
+
+<p class="toc_element">
+  <code><a href="mybusinessaccountmanagement_v1.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinessaccountmanagement_v1.locations.admins.html b/docs/dyn/mybusinessaccountmanagement_v1.locations.admins.html
new file mode 100644
index 0000000..53f3b8e
--- /dev/null
+++ b/docs/dyn/mybusinessaccountmanagement_v1.locations.admins.html
@@ -0,0 +1,207 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinessaccountmanagement_v1.html">My Business Account Management API</a> . <a href="mybusinessaccountmanagement_v1.locations.html">locations</a> . <a href="mybusinessaccountmanagement_v1.locations.admins.html">admins</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Invites the specified user to become an administrator for the specified location. The invitee must accept the invitation in order to be granted access to the location. See AcceptInvitation to programmatically accept an invitation.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Removes the specified admin as a manager of the specified location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all of the admins for the specified location.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Admin for the specified location. Only the AdminRole of the Admin can be updated.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Invites the specified user to become an administrator for the specified location. The invitee must accept the invitation in order to be granted access to the location. See AcceptInvitation to programmatically accept an invitation.
+
+Args:
+  parent: string, Required. The resource name of the location this admin is created for. `locations/{location_id}/admins`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Removes the specified admin as a manager of the specified location.
+
+Args:
+  name: string, Required. The resource name of the admin to remove from the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, x__xgafv=None)</code>
+  <pre>Lists all of the admins for the specified location.
+
+Args:
+  parent: string, Required. The name of the location to list admins of. `locations/{location_id}/admins`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for AccessControl.ListLocationAdmins.
+  &quot;admins&quot;: [ # A collection of Admins.
+    { # An administrator of an Account or a location.
+      &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+      &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+      &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the Admin for the specified location. Only the AdminRole of the Admin can be updated.
+
+Args:
+  name: string, Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}
+
+  updateMask: string, Required. The specific fields that should be updated. The only editable field is role.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An administrator of an Account or a location.
+  &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of the admin. When making the initial invitation, this is the invitee&#x27;s email address. On `GET` calls, the user&#x27;s email address is returned if the invitation is still pending. Otherwise, it contains the user&#x27;s first and last names. This field is only needed to be set during admin creation.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name. For account admins, this is in the form: `accounts/{account_id}/admins/{admin_id}` For location admins, this is in the form: `locations/{location_id}/admins/{admin_id}` This field will be ignored if set during admin creation.
+  &quot;pendingInvitation&quot;: True or False, # Output only. Indicates whether this admin has a pending invitation for the specified resource.
+  &quot;role&quot;: &quot;A String&quot;, # Required. Specifies the role that this admin uses with the specified Account or Location.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinessaccountmanagement_v1.locations.html b/docs/dyn/mybusinessaccountmanagement_v1.locations.html
new file mode 100644
index 0000000..00b2ab9
--- /dev/null
+++ b/docs/dyn/mybusinessaccountmanagement_v1.locations.html
@@ -0,0 +1,120 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinessaccountmanagement_v1.html">My Business Account Management API</a> . <a href="mybusinessaccountmanagement_v1.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mybusinessaccountmanagement_v1.locations.admins.html">admins()</a></code>
+</p>
+<p class="firstline">Returns the admins Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#transferLocation">transferLocation(locationsId, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Moves a location from an account that the user owns to another account that the same user administers. The user must be an owner of the account the location is currently associated with and must also be at least a manager of the destination account.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="transferLocation">transferLocation(locationsId, body=None, x__xgafv=None)</code>
+  <pre>Moves a location from an account that the user owns to another account that the same user administers. The user must be an owner of the account the location is currently associated with and must also be at least a manager of the destination account.
+
+Args:
+  locationsId: string, A parameter (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for AccessControl.TransferLocation.
+  &quot;destinationAccount&quot;: &quot;A String&quot;, # Required. Name of the account resource to transfer the location to (for example, &quot;accounts/{account}&quot;).
+  &quot;name&quot;: &quot;A String&quot;, # Required. The name of the location to transfer. `locations/{location_id}`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinesslodging_v1.html b/docs/dyn/mybusinesslodging_v1.html
new file mode 100644
index 0000000..ab637a4
--- /dev/null
+++ b/docs/dyn/mybusinesslodging_v1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinesslodging_v1.html">My Business Lodging API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mybusinesslodging_v1.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinesslodging_v1.locations.html b/docs/dyn/mybusinesslodging_v1.locations.html
new file mode 100644
index 0000000..5d93877
--- /dev/null
+++ b/docs/dyn/mybusinesslodging_v1.locations.html
@@ -0,0 +1,3252 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinesslodging_v1.html">My Business Lodging API</a> . <a href="mybusinesslodging_v1.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="mybusinesslodging_v1.locations.lodging.html">lodging()</a></code>
+</p>
+<p class="firstline">Returns the lodging Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getLodging">getLodging(name, readMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the Lodging of a specific location.</p>
+<p class="toc_element">
+  <code><a href="#updateLodging">updateLodging(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Lodging of a specific location.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getLodging">getLodging(name, readMask=None, x__xgafv=None)</code>
+  <pre>Returns the Lodging of a specific location.
+
+Args:
+  name: string, Required. Google identifier for this location in the form: `locations/{location_id}/lodging` (required)
+  readMask: string, Required. The specific fields to return. Use &quot;*&quot; to include all fields. Repeated field items cannot be individually specified.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Lodging of a location that provides accomodations.
+  &quot;accessibility&quot;: { # Physical adaptations made to the property in consideration of varying levels of human physical ability. # Physical adaptations made to the property in consideration of varying levels of human physical ability.
+    &quot;mobilityAccessible&quot;: True or False, # Mobility accessible. Throughout the property there are physical adaptations to ease the stay of a person in a wheelchair, such as auto-opening doors, wide elevators, wide bathrooms or ramps.
+    &quot;mobilityAccessibleElevator&quot;: True or False, # Mobility accessible elevator. A lift that transports people from one level to another and is built to accommodate a wheelchair-using passenger owing to the width of its doors and placement of call buttons.
+    &quot;mobilityAccessibleElevatorException&quot;: &quot;A String&quot;, # Mobility accessible elevator exception.
+    &quot;mobilityAccessibleException&quot;: &quot;A String&quot;, # Mobility accessible exception.
+    &quot;mobilityAccessibleParking&quot;: True or False, # Mobility accessible parking. The presence of a marked, designated area of prescribed size in which only registered, labeled vehicles transporting a person with physical challenges may park.
+    &quot;mobilityAccessibleParkingException&quot;: &quot;A String&quot;, # Mobility accessible parking exception.
+    &quot;mobilityAccessiblePool&quot;: True or False, # Mobility accessible pool. A swimming pool equipped with a mechanical chair that can be lowered and raised for the purpose of moving physically challenged guests into and out of the pool. May be powered by electricity or water. Also known as pool lift.
+    &quot;mobilityAccessiblePoolException&quot;: &quot;A String&quot;, # Mobility accessible pool exception.
+  },
+  &quot;activities&quot;: { # Amenities and features related to leisure and play. # Amenities and features related to leisure and play.
+    &quot;beachAccess&quot;: True or False, # Beach access. The hotel property is in close proximity to a beach and offers a way to get to that beach. This can include a route to the beach such as stairs down if hotel is on a bluff, or a short trail. Not the same as beachfront (with beach access, the hotel&#x27;s proximity is close to but not right on the beach).
+    &quot;beachAccessException&quot;: &quot;A String&quot;, # Beach access exception.
+    &quot;beachFront&quot;: True or False, # Breach front. The hotel property is physically located on the beach alongside an ocean, sea, gulf, or bay. It is not on a lake, river, stream, or pond. The hotel is not separated from the beach by a public road allowing vehicular, pedestrian, or bicycle traffic.
+    &quot;beachFrontException&quot;: &quot;A String&quot;, # Beach front exception.
+    &quot;bicycleRental&quot;: True or False, # Bicycle rental. The hotel owns bicycles that it permits guests to borrow and use. Can be free or for a fee.
+    &quot;bicycleRentalException&quot;: &quot;A String&quot;, # Bicycle rental exception.
+    &quot;boutiqueStores&quot;: True or False, # Boutique stores. There are stores selling clothing, jewelry, art and decor either on hotel premises or very close by. Does not refer to the hotel gift shop or convenience store.
+    &quot;boutiqueStoresException&quot;: &quot;A String&quot;, # Boutique stores exception.
+    &quot;casino&quot;: True or False, # Casino. A space designated for gambling and gaming featuring croupier-run table and card games, as well as electronic slot machines. May be on hotel premises or located nearby.
+    &quot;casinoException&quot;: &quot;A String&quot;, # Casino exception.
+    &quot;freeBicycleRental&quot;: True or False, # Free bicycle rental. The hotel owns bicycles that it permits guests to borrow and use for free.
+    &quot;freeBicycleRentalException&quot;: &quot;A String&quot;, # Free bicycle rental exception.
+    &quot;freeWatercraftRental&quot;: True or False, # Free watercraft rental. The hotel owns watercraft that it permits guests to borrow and use for free.
+    &quot;freeWatercraftRentalException&quot;: &quot;A String&quot;, # Free Watercraft rental exception.
+    &quot;gameRoom&quot;: True or False, # Game room. There is a room at the hotel containing electronic machines for play such as pinball, prize machines, driving simulators, and other items commonly found at a family fun center or arcade. May also include non-electronic games like pool, foosball, darts, and more. May or may not be designed for children. Also known as arcade, fun room, or family fun center.
+    &quot;gameRoomException&quot;: &quot;A String&quot;, # Game room exception.
+    &quot;golf&quot;: True or False, # Golf. There is a golf course on hotel grounds or there is a nearby, independently run golf course that allows use by hotel guests. Can be free or for a fee.
+    &quot;golfException&quot;: &quot;A String&quot;, # Golf exception.
+    &quot;horsebackRiding&quot;: True or False, # Horseback riding. The hotel has a horse barn onsite or an affiliation with a nearby barn to allow for guests to sit astride a horse and direct it to walk, trot, cantor, gallop and/or jump. Can be in a riding ring, on designated paths, or in the wilderness. May or may not involve instruction.
+    &quot;horsebackRidingException&quot;: &quot;A String&quot;, # Horseback riding exception.
+    &quot;nightclub&quot;: True or False, # Nightclub. There is a room at the hotel with a bar, a dance floor, and seating where designated staffers play dance music. There may also be a designated area for the performance of live music, singing and comedy acts.
+    &quot;nightclubException&quot;: &quot;A String&quot;, # Nightclub exception.
+    &quot;privateBeach&quot;: True or False, # Private beach. The beach which is in close proximity to the hotel is open only to guests.
+    &quot;privateBeachException&quot;: &quot;A String&quot;, # Private beach exception.
+    &quot;scuba&quot;: True or False, # Scuba. The provision for guests to dive under naturally occurring water fitted with a self-contained underwater breathing apparatus (SCUBA) for the purpose of exploring underwater life. Apparatus consists of a tank providing oxygen to the diver through a mask. Requires certification of the diver and supervision. The hotel may have the activity at its own waterfront or have an affiliation with a nearby facility. Required equipment is most often supplied to guests. Can be free or for a fee. Not snorkeling. Not done in a swimming pool.
+    &quot;scubaException&quot;: &quot;A String&quot;, # Scuba exception.
+    &quot;snorkeling&quot;: True or False, # Snorkeling. The provision for guests to participate in a recreational water activity in which swimmers wear a diving mask, a simple, shaped breathing tube and flippers/swim fins for the purpose of exploring below the surface of an ocean, gulf or lake. Does not usually require user certification or professional supervision. Equipment may or may not be available for rent or purchase. Not scuba diving.
+    &quot;snorkelingException&quot;: &quot;A String&quot;, # Snorkeling exception.
+    &quot;tennis&quot;: True or False, # Tennis. The hotel has the requisite court(s) on site or has an affiliation with a nearby facility for the purpose of providing guests with the opportunity to play a two-sided court-based game in which players use a stringed racquet to hit a ball across a net to the side of the opposing player. The court can be indoors or outdoors. Instructors, racquets and balls may or may not be provided.
+    &quot;tennisException&quot;: &quot;A String&quot;, # Tennis exception.
+    &quot;waterSkiing&quot;: True or False, # Water skiing. The provision of giving guests the opportunity to be pulled across naturally occurring water while standing on skis and holding a tow rope attached to a motorboat. Can occur on hotel premises or at a nearby waterfront. Most often performed in a lake or ocean.
+    &quot;waterSkiingException&quot;: &quot;A String&quot;, # Water skiing exception.
+    &quot;watercraftRental&quot;: True or False, # Watercraft rental. The hotel owns water vessels that it permits guests to borrow and use. Can be free or for a fee. Watercraft may include boats, pedal boats, rowboats, sailboats, powerboats, canoes, kayaks, or personal watercraft (such as a Jet Ski).
+    &quot;watercraftRentalException&quot;: &quot;A String&quot;, # Watercraft rental exception.
+  },
+  &quot;allUnits&quot;: { # Features and available amenities in the guest unit. # Output only. All units on the property have at least these attributes.
+    &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+    &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+    &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+    &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+    &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+    &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+    &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+    &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+    &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+    &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+    &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+    &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+    &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+    &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+    &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+    &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+    &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+    &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+    &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+      &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+      &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+      &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+      &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+      &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+      &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+      &quot;lakeView&quot;: True or False, # Lake view.
+      &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+      &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+      &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+      &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+      &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+      &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+      &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+      &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+      &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+    },
+  },
+  &quot;business&quot;: { # Features of the property of specific interest to the business traveler. # Features of the property of specific interest to the business traveler.
+    &quot;businessCenter&quot;: True or False, # Business center. A designated room at the hotel with one or more desks and equipped with guest-use computers, printers, fax machines and/or photocopiers. May or may not be open 24/7. May or may not require a key to access. Not a meeting room or conference room.
+    &quot;businessCenterException&quot;: &quot;A String&quot;, # Business center exception.
+    &quot;meetingRooms&quot;: True or False, # Meeting rooms. Rooms at the hotel designated for business-related gatherings. Rooms are usually equipped with tables or desks, office chairs and audio/visual facilities to allow for presentations and conference calls. Also known as conference rooms.
+    &quot;meetingRoomsCount&quot;: 42, # Meeting rooms count. The number of meeting rooms at the property.
+    &quot;meetingRoomsCountException&quot;: &quot;A String&quot;, # Meeting rooms count exception.
+    &quot;meetingRoomsException&quot;: &quot;A String&quot;, # Meeting rooms exception.
+  },
+  &quot;commonLivingArea&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features of the shared living areas available in this Lodging.
+    &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+      &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+      &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+      &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+      &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+      &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+      &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+      &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+      &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+      &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+      &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+      &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+      &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+      &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+      &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+      &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+      &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+    },
+    &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+      &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+      &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+      &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+      &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+      &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+      &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+      &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+      &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+      &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+      &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+      &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+      &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+      &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+      &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+      &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+      &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+      &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+      &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+      &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+      &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+      &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+      &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+      &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+      &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+      &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+      &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+      &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+      &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+      &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+      &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+      &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+      &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+    },
+    &quot;features&quot;: { # Features in the living area. # Features in the living area.
+      &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+      &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+      &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+      &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+      &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+      &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+      &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+      &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+      &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+      &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+      &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+      &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+      &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+      &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+      &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+      &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+      &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+      &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+      &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+      &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+      &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+      &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+      &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+      &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+      &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+      &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+      &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+      &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+      &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+      &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+      &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+      &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+      &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+      &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+      &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+      &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+      &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+      &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+      &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+      &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+    },
+    &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+      &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+      &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+      &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+      &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+      &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+      &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+      &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+      &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+      &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+      &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+      &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+      &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+    },
+    &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+      &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+      &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+      &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+      &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+      &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+      &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+      &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+      &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+      &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+      &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+      &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+      &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+      &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+      &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+      &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+      &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+      &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+      &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+      &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+      &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+      &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+      &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+      &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+      &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+      &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+      &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+      &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+      &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+    },
+  },
+  &quot;connectivity&quot;: { # The ways in which the property provides guests with the ability to access the internet. # The ways in which the property provides guests with the ability to access the internet.
+    &quot;freeWifi&quot;: True or False, # Free wifi. The hotel offers guests wifi for free.
+    &quot;freeWifiException&quot;: &quot;A String&quot;, # Free wifi exception.
+    &quot;publicAreaWifiAvailable&quot;: True or False, # Public area wifi available. Guests have the ability to wirelessly connect to the internet in the areas of the hotel accessible to anyone. Can be free or for a fee.
+    &quot;publicAreaWifiAvailableException&quot;: &quot;A String&quot;, # Public area wifi available exception.
+    &quot;publicInternetTerminal&quot;: True or False, # Public internet terminal. An area of the hotel supplied with computers and designated for the purpose of providing guests with the ability to access the internet.
+    &quot;publicInternetTerminalException&quot;: &quot;A String&quot;, # Public internet terminal exception.
+    &quot;wifiAvailable&quot;: True or False, # Wifi available. The hotel provides the ability for guests to wirelessly connect to the internet. Can be in the public areas of the hotel and/or in the guest rooms. Can be free or for a fee.
+    &quot;wifiAvailableException&quot;: &quot;A String&quot;, # Wifi available exception.
+  },
+  &quot;families&quot;: { # Services and amenities for families and young guests. # Services and amenities for families and young guests.
+    &quot;babysitting&quot;: True or False, # Babysitting. Child care that is offered by hotel staffers or coordinated by hotel staffers with local child care professionals. Can be free or for a fee.
+    &quot;babysittingException&quot;: &quot;A String&quot;, # Babysitting exception.
+    &quot;kidsActivities&quot;: True or False, # Kids activities. Recreational options such as sports, films, crafts and games designed for the enjoyment of children and offered at the hotel. May or may not be supervised. May or may not be at a designated time or place. Cab be free or for a fee.
+    &quot;kidsActivitiesException&quot;: &quot;A String&quot;, # Kids activities exception.
+    &quot;kidsClub&quot;: True or False, # Kids club. An organized program of group activities held at the hotel and designed for the enjoyment of children. Facilitated by hotel staff (or staff procured by the hotel) in an area(s) designated for the purpose of entertaining children without their parents. May include games, outings, water sports, team sports, arts and crafts, and films. Usually has set hours. Can be free or for a fee. Also known as Kids Camp or Kids program.
+    &quot;kidsClubException&quot;: &quot;A String&quot;, # Kids club exception.
+  },
+  &quot;foodAndDrink&quot;: { # Meals, snacks, and beverages available at the property. # Meals, snacks, and beverages available at the property.
+    &quot;bar&quot;: True or False, # Bar. A designated room, lounge or area of an on-site restaurant with seating at a counter behind which a hotel staffer takes the guest&#x27;s order and provides the requested alcoholic drink. Can be indoors or outdoors. Also known as Pub.
+    &quot;barException&quot;: &quot;A String&quot;, # Bar exception.
+    &quot;breakfastAvailable&quot;: True or False, # Breakfast available. The morning meal is offered to all guests. Can be free or for a fee.
+    &quot;breakfastAvailableException&quot;: &quot;A String&quot;, # Breakfast available exception.
+    &quot;breakfastBuffet&quot;: True or False, # Breakfast buffet. Breakfast meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+    &quot;breakfastBuffetException&quot;: &quot;A String&quot;, # Breakfast buffet exception.
+    &quot;buffet&quot;: True or False, # Buffet. A type of meal where guests serve themselves from a variety of dishes/foods that are put out on a table. Includes lunch and/or dinner meals. A breakfast-only buffet is not sufficient.
+    &quot;buffetException&quot;: &quot;A String&quot;, # Buffet exception.
+    &quot;dinnerBuffet&quot;: True or False, # Dinner buffet. Dinner meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+    &quot;dinnerBuffetException&quot;: &quot;A String&quot;, # Dinner buffet exception.
+    &quot;freeBreakfast&quot;: True or False, # Free breakfast. Breakfast is offered for free to all guests. Does not apply if limited to certain room packages.
+    &quot;freeBreakfastException&quot;: &quot;A String&quot;, # Free breakfast exception.
+    &quot;restaurant&quot;: True or False, # Restaurant. A business onsite at the hotel that is open to the public as well as guests, and offers meals and beverages to consume at tables or counters. May or may not include table service. Also known as cafe, buffet, eatery. A &quot;breakfast room&quot; where the hotel serves breakfast only to guests (not the general public) does not count as a restaurant.
+    &quot;restaurantException&quot;: &quot;A String&quot;, # Restaurant exception.
+    &quot;restaurantsCount&quot;: 42, # Restaurants count. The number of restaurants at the hotel.
+    &quot;restaurantsCountException&quot;: &quot;A String&quot;, # Restaurants count exception.
+    &quot;roomService&quot;: True or False, # Room service. A hotel staffer delivers meals prepared onsite to a guest&#x27;s room as per their request. May or may not be available during specific hours. Services should be available to all guests (not based on rate/room booked/reward program, etc).
+    &quot;roomServiceException&quot;: &quot;A String&quot;, # Room service exception.
+    &quot;tableService&quot;: True or False, # Table service. A restaurant in which a staff member is assigned to a guest&#x27;s table to take their order, deliver and clear away food, and deliver the bill, if applicable. Also known as sit-down restaurant.
+    &quot;tableServiceException&quot;: &quot;A String&quot;, # Table service exception.
+    &quot;twentyFourHourRoomService&quot;: True or False, # 24hr room service. Room service is available 24 hours a day.
+    &quot;twentyFourHourRoomServiceException&quot;: &quot;A String&quot;, # 24hr room service exception.
+    &quot;vendingMachine&quot;: True or False, # Vending machine. A glass-fronted mechanized cabinet displaying and dispensing snacks and beverages for purchase by coins, paper money and/or credit cards.
+    &quot;vendingMachineException&quot;: &quot;A String&quot;, # Vending machine exception.
+  },
+  &quot;guestUnits&quot;: [ # Individual GuestUnitTypes that are available in this Lodging.
+    { # A specific type of unit primarily defined by its features.
+      &quot;codes&quot;: [ # Required. Unit or room code identifiers for a single GuestUnitType. Each code must be unique within a Lodging instance.
+        &quot;A String&quot;,
+      ],
+      &quot;features&quot;: { # Features and available amenities in the guest unit. # Features and available amenities of the GuestUnitType.
+        &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+        &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+        &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+        &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+        &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+        &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+        &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+        &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+        &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+        &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+        &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+        &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+        &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+        &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+        &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+        &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+        &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+        &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+        &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+          &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+            &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+            &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+            &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+            &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+            &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+            &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+            &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+            &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+            &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+            &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+            &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+            &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+            &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+            &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+            &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+            &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+          },
+          &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+            &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+            &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+            &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+            &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+            &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+            &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+            &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+            &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+            &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+            &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+            &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+            &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+            &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+            &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+            &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+            &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+            &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+            &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+            &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+            &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+            &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+            &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+            &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+            &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+            &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+            &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+            &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+            &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+            &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+            &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+            &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+            &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+          },
+          &quot;features&quot;: { # Features in the living area. # Features in the living area.
+            &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+            &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+            &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+            &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+            &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+            &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+            &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+            &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+            &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+            &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+            &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+            &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+            &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+            &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+            &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+            &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+            &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+            &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+            &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+            &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+            &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+            &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+            &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+            &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+            &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+            &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+            &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+            &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+            &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+            &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+            &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+            &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+            &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+            &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+            &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+            &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+            &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+            &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+            &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+            &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+          },
+          &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+            &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+            &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+            &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+            &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+            &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+            &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+            &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+            &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+            &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+            &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+            &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+            &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+          },
+          &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+            &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+            &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+            &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+            &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+            &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+            &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+            &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+            &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+            &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+            &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+            &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+            &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+            &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+            &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+            &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+            &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+            &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+            &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+            &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+            &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+            &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+            &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+            &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+            &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+            &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+            &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+            &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+            &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+          },
+        },
+        &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+          &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+          &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+          &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+          &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+          &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+          &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+          &quot;lakeView&quot;: True or False, # Lake view.
+          &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+          &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+          &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+          &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+          &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+          &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+          &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+          &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+          &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+        },
+      },
+      &quot;label&quot;: &quot;A String&quot;, # Required. Short, English label or name of the GuestUnitType. Target &lt;50 chars.
+    },
+  ],
+  &quot;healthAndSafety&quot;: { # Health and safety measures implemented by the hotel during COVID-19. # Health and safety measures implemented by the hotel during COVID-19.
+    &quot;enhancedCleaning&quot;: { # Enhanced cleaning measures implemented by the hotel during COVID-19. # Enhanced cleaning measures implemented by the hotel during COVID-19.
+      &quot;commercialGradeDisinfectantCleaning&quot;: True or False, # Commercial-grade disinfectant used to clean the property.
+      &quot;commercialGradeDisinfectantCleaningException&quot;: &quot;A String&quot;, # Commercial grade disinfectant cleaning exception.
+      &quot;commonAreasEnhancedCleaning&quot;: True or False, # Enhanced cleaning of common areas.
+      &quot;commonAreasEnhancedCleaningException&quot;: &quot;A String&quot;, # Common areas enhanced cleaning exception.
+      &quot;employeesTrainedCleaningProcedures&quot;: True or False, # Employees trained in COVID-19 cleaning procedures.
+      &quot;employeesTrainedCleaningProceduresException&quot;: &quot;A String&quot;, # Employees trained cleaning procedures exception.
+      &quot;employeesTrainedThoroughHandWashing&quot;: True or False, # Employees trained in thorough hand-washing.
+      &quot;employeesTrainedThoroughHandWashingException&quot;: &quot;A String&quot;, # Employees trained thorough hand washing exception.
+      &quot;employeesWearProtectiveEquipment&quot;: True or False, # Employees wear masks, face shields, and/or gloves.
+      &quot;employeesWearProtectiveEquipmentException&quot;: &quot;A String&quot;, # Employees wear protective equipment exception.
+      &quot;guestRoomsEnhancedCleaning&quot;: True or False, # Enhanced cleaning of guest rooms.
+      &quot;guestRoomsEnhancedCleaningException&quot;: &quot;A String&quot;, # Guest rooms enhanced cleaning exception.
+    },
+    &quot;increasedFoodSafety&quot;: { # Increased food safety measures implemented by the hotel during COVID-19. # Increased food safety measures implemented by the hotel during COVID-19.
+      &quot;diningAreasAdditionalSanitation&quot;: True or False, # Additional sanitation in dining areas.
+      &quot;diningAreasAdditionalSanitationException&quot;: &quot;A String&quot;, # Dining areas additional sanitation exception.
+      &quot;disposableFlatware&quot;: True or False, # Disposable flatware.
+      &quot;disposableFlatwareException&quot;: &quot;A String&quot;, # Disposable flatware exception.
+      &quot;foodPreparationAndServingAdditionalSafety&quot;: True or False, # Additional safety measures during food prep and serving.
+      &quot;foodPreparationAndServingAdditionalSafetyException&quot;: &quot;A String&quot;, # Food preparation and serving additional safety exception.
+      &quot;individualPackagedMeals&quot;: True or False, # Individually-packaged meals.
+      &quot;individualPackagedMealsException&quot;: &quot;A String&quot;, # Individual packaged meals exception.
+      &quot;singleUseFoodMenus&quot;: True or False, # Single-use menus.
+      &quot;singleUseFoodMenusException&quot;: &quot;A String&quot;, # Single use food menus exception.
+    },
+    &quot;minimizedContact&quot;: { # Minimized contact measures implemented by the hotel during COVID-19. # Minimized contact measures implemented by the hotel during COVID-19.
+      &quot;contactlessCheckinCheckout&quot;: True or False, # No-contact check-in and check-out.
+      &quot;contactlessCheckinCheckoutException&quot;: &quot;A String&quot;, # Contactless check-in check-out exception.
+      &quot;digitalGuestRoomKeys&quot;: True or False, # Keyless mobile entry to guest rooms.
+      &quot;digitalGuestRoomKeysException&quot;: &quot;A String&quot;, # Digital guest room keys exception.
+      &quot;housekeepingScheduledRequestOnly&quot;: True or False, # Housekeeping scheduled by request only.
+      &quot;housekeepingScheduledRequestOnlyException&quot;: &quot;A String&quot;, # Housekeeping scheduled request only exception.
+      &quot;noHighTouchItemsCommonAreas&quot;: True or False, # High-touch items, such as magazines, removed from common areas.
+      &quot;noHighTouchItemsCommonAreasException&quot;: &quot;A String&quot;, # No high touch items common areas exception.
+      &quot;noHighTouchItemsGuestRooms&quot;: True or False, # High-touch items, such as decorative pillows, removed from guest rooms.
+      &quot;noHighTouchItemsGuestRoomsException&quot;: &quot;A String&quot;, # No high touch items guest rooms exception.
+      &quot;plasticKeycardsDisinfected&quot;: True or False, # Plastic key cards are disinfected or discarded.
+      &quot;plasticKeycardsDisinfectedException&quot;: &quot;A String&quot;, # Plastic keycards disinfected exception.
+      &quot;roomBookingsBuffer&quot;: True or False, # Buffer maintained between room bookings.
+      &quot;roomBookingsBufferException&quot;: &quot;A String&quot;, # Room bookings buffer exception.
+    },
+    &quot;personalProtection&quot;: { # Personal protection measures implemented by the hotel during COVID-19. # Personal protection measures implemented by the hotel during COVID-19.
+      &quot;commonAreasOfferSanitizingItems&quot;: True or False, # Hand-sanitizer and/or sanitizing wipes are offered in common areas.
+      &quot;commonAreasOfferSanitizingItemsException&quot;: &quot;A String&quot;, # Common areas offer sanitizing items exception.
+      &quot;faceMaskRequired&quot;: True or False, # Masks required on the property.
+      &quot;faceMaskRequiredException&quot;: &quot;A String&quot;, # Face mask required exception.
+      &quot;guestRoomHygieneKitsAvailable&quot;: True or False, # In-room hygiene kits with masks, hand sanitizer, and/or antibacterial wipes.
+      &quot;guestRoomHygieneKitsAvailableException&quot;: &quot;A String&quot;, # Guest room hygiene kits available exception.
+      &quot;protectiveEquipmentAvailable&quot;: True or False, # Masks and/or gloves available for guests.
+      &quot;protectiveEquipmentAvailableException&quot;: &quot;A String&quot;, # Protective equipment available exception.
+    },
+    &quot;physicalDistancing&quot;: { # Physical distancing measures implemented by the hotel during COVID-19. # Physical distancing measures implemented by the hotel during COVID-19.
+      &quot;commonAreasPhysicalDistancingArranged&quot;: True or False, # Common areas arranged to maintain physical distancing.
+      &quot;commonAreasPhysicalDistancingArrangedException&quot;: &quot;A String&quot;, # Common areas physical distancing arranged exception.
+      &quot;physicalDistancingRequired&quot;: True or False, # Physical distancing required.
+      &quot;physicalDistancingRequiredException&quot;: &quot;A String&quot;, # Physical distancing required exception.
+      &quot;safetyDividers&quot;: True or False, # Safety dividers at front desk and other locations.
+      &quot;safetyDividersException&quot;: &quot;A String&quot;, # Safety dividers exception.
+      &quot;sharedAreasLimitedOccupancy&quot;: True or False, # Guest occupancy limited within shared facilities.
+      &quot;sharedAreasLimitedOccupancyException&quot;: &quot;A String&quot;, # Shared areas limited occupancy exception.
+      &quot;wellnessAreasHavePrivateSpaces&quot;: True or False, # Private spaces designated in spa and wellness areas.
+      &quot;wellnessAreasHavePrivateSpacesException&quot;: &quot;A String&quot;, # Wellness areas have private spaces exception.
+    },
+  },
+  &quot;housekeeping&quot;: { # Conveniences provided in guest units to facilitate an easier, more comfortable stay. # Conveniences provided in guest units to facilitate an easier, more comfortable stay.
+    &quot;dailyHousekeeping&quot;: True or False, # Daily housekeeping. Guest units are cleaned by hotel staff daily during guest&#x27;s stay.
+    &quot;dailyHousekeepingException&quot;: &quot;A String&quot;, # Daily housekeeping exception.
+    &quot;housekeepingAvailable&quot;: True or False, # Housekeeping available. Guest units are cleaned by hotel staff during guest&#x27;s stay. Schedule may vary from daily, weekly, or specific days of the week.
+    &quot;housekeepingAvailableException&quot;: &quot;A String&quot;, # Housekeeping available exception.
+    &quot;turndownService&quot;: True or False, # Turndown service. Hotel staff enters guest units to prepare the bed for sleep use. May or may not include some light housekeeping. May or may not include an evening snack or candy. Also known as evening service.
+    &quot;turndownServiceException&quot;: &quot;A String&quot;, # Turndown service exception.
+  },
+  &quot;metadata&quot;: { # Metadata for the Lodging. # Required. Metadata for the lodging.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Required. The latest time at which the Lodging data is asserted to be true in the real world. This is not necessarily the time at which the request is made.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Google identifier for this location in the form: `locations/{location_id}/lodging`
+  &quot;parking&quot;: { # Parking options at the property. # Parking options at the property.
+    &quot;electricCarChargingStations&quot;: True or False, # Electric car charging stations. Electric power stations, usually located outdoors, into which guests plug their electric cars to receive a charge.
+    &quot;electricCarChargingStationsException&quot;: &quot;A String&quot;, # Electric car charging stations exception.
+    &quot;freeParking&quot;: True or False, # Free parking. The hotel allows the cars of guests to be parked for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff. Free parking must be available to all guests (limited conditions does not apply).
+    &quot;freeParkingException&quot;: &quot;A String&quot;, # Free parking exception.
+    &quot;freeSelfParking&quot;: True or False, # Free self parking. Guests park their own cars for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply.
+    &quot;freeSelfParkingException&quot;: &quot;A String&quot;, # Free self parking exception.
+    &quot;freeValetParking&quot;: True or False, # Free valet parking. Hotel staff member parks the cars of guests. Parking with this service is free.
+    &quot;freeValetParkingException&quot;: &quot;A String&quot;, # Free valet parking exception.
+    &quot;parkingAvailable&quot;: True or False, # Parking available. The hotel allows the cars of guests to be parked. Can be free or for a fee. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff.
+    &quot;parkingAvailableException&quot;: &quot;A String&quot;, # Parking available exception.
+    &quot;selfParkingAvailable&quot;: True or False, # Self parking available. Guests park their own cars. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Can be free or for a fee.
+    &quot;selfParkingAvailableException&quot;: &quot;A String&quot;, # Self parking available exception.
+    &quot;valetParkingAvailable&quot;: True or False, # Valet parking available. Hotel staff member parks the cars of guests. Parking with this service can be free or for a fee.
+    &quot;valetParkingAvailableException&quot;: &quot;A String&quot;, # Valet parking available exception.
+  },
+  &quot;pets&quot;: { # Policies regarding guest-owned animals. # Policies regarding guest-owned animals.
+    &quot;catsAllowed&quot;: True or False, # Cats allowed. Domesticated felines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+    &quot;catsAllowedException&quot;: &quot;A String&quot;, # Cats allowed exception.
+    &quot;dogsAllowed&quot;: True or False, # Dogs allowed. Domesticated canines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+    &quot;dogsAllowedException&quot;: &quot;A String&quot;, # Dogs allowed exception.
+    &quot;petsAllowed&quot;: True or False, # Pets allowed. Household animals are allowed at the property and in the specific guest room of their owner. May or may not include dogs, cats, reptiles and/or fish. May or may not require a fee. Service animals are not considered to be pets, so not governed by this policy.
+    &quot;petsAllowedException&quot;: &quot;A String&quot;, # Pets allowed exception.
+    &quot;petsAllowedFree&quot;: True or False, # Pets allowed free. Household animals are allowed at the property and in the specific guest room of their owner for free. May or may not include dogs, cats, reptiles, and/or fish.
+    &quot;petsAllowedFreeException&quot;: &quot;A String&quot;, # Pets allowed free exception.
+  },
+  &quot;policies&quot;: { # Property rules that impact guests. # Property rules that impact guests.
+    &quot;allInclusiveAvailable&quot;: True or False, # All inclusive available. The hotel offers a rate option that includes the cost of the room, meals, activities, and other amenities that might otherwise be charged separately.
+    &quot;allInclusiveAvailableException&quot;: &quot;A String&quot;, # All inclusive available exception.
+    &quot;allInclusiveOnly&quot;: True or False, # All inclusive only. The only rate option offered by the hotel is a rate that includes the cost of the room, meals, activities and other amenities that might otherwise be charged separately.
+    &quot;allInclusiveOnlyException&quot;: &quot;A String&quot;, # All inclusive only exception.
+    &quot;checkinTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-in time. The time of the day at which the hotel begins providing guests access to their unit at the beginning of their stay.
+      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+    },
+    &quot;checkinTimeException&quot;: &quot;A String&quot;, # Check-in time exception.
+    &quot;checkoutTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-out time. The time of the day on the last day of a guest&#x27;s reserved stay at which the guest must vacate their room and settle their bill. Some hotels may offer late or early check out for a fee.
+      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+    },
+    &quot;checkoutTimeException&quot;: &quot;A String&quot;, # Check-out time exception.
+    &quot;kidsStayFree&quot;: True or False, # Kids stay free. The children of guests are allowed to stay in the room/suite of a parent or adult without an additional fee. The policy may or may not stipulate a limit of the child&#x27;s age or the overall number of children allowed.
+    &quot;kidsStayFreeException&quot;: &quot;A String&quot;, # Kids stay free exception.
+    &quot;maxChildAge&quot;: 42, # Max child age. The hotel allows children up to a certain age to stay in the room/suite of a parent or adult without an additional fee.
+    &quot;maxChildAgeException&quot;: &quot;A String&quot;, # Max child age exception.
+    &quot;maxKidsStayFreeCount&quot;: 42, # Max kids stay free count. The hotel allows a specific, defined number of children to stay in the room/suite of a parent or adult without an additional fee.
+    &quot;maxKidsStayFreeCountException&quot;: &quot;A String&quot;, # Max kids stay free count exception.
+    &quot;paymentOptions&quot;: { # Forms of payment accepted at the property. # Forms of payment accepted at the property.
+      &quot;cash&quot;: True or False, # Cash. The hotel accepts payment by paper/coin currency.
+      &quot;cashException&quot;: &quot;A String&quot;, # Cash exception.
+      &quot;cheque&quot;: True or False, # Cheque. The hotel accepts a printed document issued by the guest&#x27;s bank in the guest&#x27;s name as a form of payment.
+      &quot;chequeException&quot;: &quot;A String&quot;, # Cheque exception.
+      &quot;creditCard&quot;: True or False, # Credit card. The hotel accepts payment by a card issued by a bank or credit card company. Also known as charge card, debit card, bank card, or charge plate.
+      &quot;creditCardException&quot;: &quot;A String&quot;, # Credit card exception.
+      &quot;debitCard&quot;: True or False, # Debit card. The hotel accepts a bank-issued card that immediately deducts the charged funds from the guest&#x27;s bank account upon processing.
+      &quot;debitCardException&quot;: &quot;A String&quot;, # Debit card exception.
+      &quot;mobileNfc&quot;: True or False, # Mobile nfc. The hotel has the compatible computer hardware terminal that reads and charges a payment app on the guest&#x27;s smartphone without requiring the two devices to make physical contact. Also known as Apple Pay, Google Pay, Samsung Pay.
+      &quot;mobileNfcException&quot;: &quot;A String&quot;, # Mobile nfc exception.
+    },
+    &quot;smokeFreeProperty&quot;: True or False, # Smoke free property. Smoking is not allowed inside the building, on balconies, or in outside spaces. Hotels that offer a designated area for guests to smoke are not considered smoke-free properties.
+    &quot;smokeFreePropertyException&quot;: &quot;A String&quot;, # Smoke free property exception.
+  },
+  &quot;pools&quot;: { # Swimming pool or recreational water facilities available at the hotel. # Swimming pool or recreational water facilities available at the hotel.
+    &quot;adultPool&quot;: True or False, # Adult pool. A pool restricted for use by adults only. Can be indoors or outdoors.
+    &quot;adultPoolException&quot;: &quot;A String&quot;, # Adult pool exception.
+    &quot;hotTub&quot;: True or False, # Hot tub. A man-made pool containing bubbling water maintained at a higher temperature and circulated by aerating jets for the purpose of soaking, relaxation and hydrotherapy. Can be indoors or outdoors. Not used for active swimming. Also known as Jacuzzi. Hot tub must be in a common area where all guests can access it. Does not apply to room-specific hot tubs that are only accessible to guest occupying that room.
+    &quot;hotTubException&quot;: &quot;A String&quot;, # Hot tub exception.
+    &quot;indoorPool&quot;: True or False, # Indoor pool. A pool located inside the hotel and available for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+    &quot;indoorPoolException&quot;: &quot;A String&quot;, # Indoor pool exception.
+    &quot;indoorPoolsCount&quot;: 42, # Indoor pools count. The sum of all indoor pools at the hotel.
+    &quot;indoorPoolsCountException&quot;: &quot;A String&quot;, # Indoor pools count exception.
+    &quot;lazyRiver&quot;: True or False, # Lazy river. A man-made pool or several interconnected recreational pools built to mimic the shape and current of a winding river where guests float in the water on inflated rubber tubes. Can be indoors or outdoors.
+    &quot;lazyRiverException&quot;: &quot;A String&quot;, # Lazy river exception.
+    &quot;lifeguard&quot;: True or False, # Lifeguard. A trained member of the hotel staff stationed by the hotel&#x27;s indoor or outdoor swimming area and responsible for the safety of swimming guests.
+    &quot;lifeguardException&quot;: &quot;A String&quot;, # Lifeguard exception.
+    &quot;outdoorPool&quot;: True or False, # Outdoor pool. A pool located outside on the grounds of the hotel and available for guests to use for swimming, soaking or recreation. Use may or may not be restricted to adults and/or children.
+    &quot;outdoorPoolException&quot;: &quot;A String&quot;, # Outdoor pool exception.
+    &quot;outdoorPoolsCount&quot;: 42, # Outdoor pools count. The sum of all outdoor pools at the hotel.
+    &quot;outdoorPoolsCountException&quot;: &quot;A String&quot;, # Outdoor pools count exception.
+    &quot;pool&quot;: True or False, # Pool. The presence of a pool, either indoors or outdoors, for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+    &quot;poolException&quot;: &quot;A String&quot;, # Pool exception.
+    &quot;poolsCount&quot;: 42, # Pools count. The sum of all pools at the hotel.
+    &quot;poolsCountException&quot;: &quot;A String&quot;, # Pools count exception.
+    &quot;wadingPool&quot;: True or False, # Wading pool. A shallow pool designed for small children to play in. Can be indoors or outdoors. Also known as kiddie pool.
+    &quot;wadingPoolException&quot;: &quot;A String&quot;, # Wading pool exception.
+    &quot;waterPark&quot;: True or False, # Water park. An aquatic recreation area with a large pool or series of pools that has features such as a water slide or tube, wavepool, fountains, rope swings, and/or obstacle course. Can be indoors or outdoors. Also known as adventure pool.
+    &quot;waterParkException&quot;: &quot;A String&quot;, # Water park exception.
+    &quot;waterslide&quot;: True or False, # Waterslide. A continuously wetted chute positioned by an indoor or outdoor pool which people slide down into the water.
+    &quot;waterslideException&quot;: &quot;A String&quot;, # Waterslide exception.
+    &quot;wavePool&quot;: True or False, # Wave pool. A large indoor or outdoor pool with a machine that produces water currents to mimic the ocean&#x27;s crests.
+    &quot;wavePoolException&quot;: &quot;A String&quot;, # Wave pool exception.
+  },
+  &quot;property&quot;: { # General factual information about the property&#x27;s physical structure and important dates. # General factual information about the property&#x27;s physical structure and important dates.
+    &quot;builtYear&quot;: 42, # Built year. The year that construction of the property was completed.
+    &quot;builtYearException&quot;: &quot;A String&quot;, # Built year exception.
+    &quot;floorsCount&quot;: 42, # Floors count. The number of stories the building has from the ground floor to the top floor that are accessible to guests.
+    &quot;floorsCountException&quot;: &quot;A String&quot;, # Floors count exception.
+    &quot;lastRenovatedYear&quot;: 42, # Last renovated year. The year when the most recent renovation of the property was completed. Renovation may include all or any combination of the following: the units, the public spaces, the exterior, or the interior.
+    &quot;lastRenovatedYearException&quot;: &quot;A String&quot;, # Last renovated year exception.
+    &quot;roomsCount&quot;: 42, # Rooms count. The total number of rooms and suites bookable by guests for an overnight stay. Does not include event space, public spaces, conference rooms, fitness rooms, business centers, spa, salon, restaurants/bars, or shops.
+    &quot;roomsCountException&quot;: &quot;A String&quot;, # Rooms count exception.
+  },
+  &quot;services&quot;: { # Conveniences or help provided by the property to facilitate an easier, more comfortable stay. # Conveniences or help provided by the property to facilitate an easier, more comfortable stay.
+    &quot;baggageStorage&quot;: True or False, # Baggage storage. A provision for guests to leave their bags at the hotel when they arrive for their stay before the official check-in time. May or may not apply for guests who wish to leave their bags after check-out and before departing the locale. Also known as bag dropoff.
+    &quot;baggageStorageException&quot;: &quot;A String&quot;, # Baggage storage exception.
+    &quot;concierge&quot;: True or False, # Concierge. Hotel staff member(s) responsible for facilitating an easy, comfortable stay through making reservations for meals, sourcing theater tickets, arranging tours, finding a doctor, making recommendations, and answering questions.
+    &quot;conciergeException&quot;: &quot;A String&quot;, # Concierge exception.
+    &quot;convenienceStore&quot;: True or False, # Convenience store. A shop at the hotel primarily selling snacks, drinks, non-prescription medicines, health and beauty aids, magazines and newspapers.
+    &quot;convenienceStoreException&quot;: &quot;A String&quot;, # Convenience store exception.
+    &quot;currencyExchange&quot;: True or False, # Currency exchange. A staff member or automated machine tasked with the transaction of providing the native currency of the hotel&#x27;s locale in exchange for the foreign currency provided by a guest.
+    &quot;currencyExchangeException&quot;: &quot;A String&quot;, # Currency exchange exception.
+    &quot;elevator&quot;: True or False, # Elevator. A passenger elevator that transports guests from one story to another. Also known as lift.
+    &quot;elevatorException&quot;: &quot;A String&quot;, # Elevator exception.
+    &quot;frontDesk&quot;: True or False, # Front desk. A counter or desk in the lobby or the immediate interior of the hotel where a member of the staff greets guests and processes the information related to their stay (including check-in and check-out). May or may not be manned and open 24/7.
+    &quot;frontDeskException&quot;: &quot;A String&quot;, # Front desk exception.
+    &quot;fullServiceLaundry&quot;: True or False, # Full service laundry. Laundry and dry cleaning facilitated and handled by the hotel on behalf of the guest. Does not include the provision for guests to do their own laundry in on-site machines.
+    &quot;fullServiceLaundryException&quot;: &quot;A String&quot;, # Full service laundry exception.
+    &quot;giftShop&quot;: True or False, # Gift shop. An on-site store primarily selling souvenirs, mementos and other gift items. May or may not also sell sundries, magazines and newspapers, clothing, or snacks.
+    &quot;giftShopException&quot;: &quot;A String&quot;, # Gift shop exception.
+    &quot;languagesSpoken&quot;: [ # Languages spoken by at least one staff member.
+      { # Language spoken by at least one staff member.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Required. The BCP-47 language code for the spoken language. Currently accepted codes: ar, de, en, es, fil, fr, hi, id, it, ja, ko, nl, pt, ru, vi, yue, zh.
+        &quot;spoken&quot;: True or False, # At least one member of the staff can speak the language.
+        &quot;spokenException&quot;: &quot;A String&quot;, # Spoken exception.
+      },
+    ],
+    &quot;selfServiceLaundry&quot;: True or False, # Self service laundry. On-site clothes washers and dryers accessible to guests for the purpose of washing and drying their own clothes. May or may not require payment to use the machines.
+    &quot;selfServiceLaundryException&quot;: &quot;A String&quot;, # Self service laundry exception.
+    &quot;socialHour&quot;: True or False, # Social hour. A reception with complimentary soft drinks, tea, coffee, wine and/or cocktails in the afternoon or evening. Can be hosted by hotel staff or guests may serve themselves. Also known as wine hour. The availability of coffee/tea in the lobby throughout the day does not constitute a social or wine hour.
+    &quot;socialHourException&quot;: &quot;A String&quot;, # Social hour exception.
+    &quot;twentyFourHourFrontDesk&quot;: True or False, # 24hr front desk. Front desk is staffed 24 hours a day.
+    &quot;twentyFourHourFrontDeskException&quot;: &quot;A String&quot;, # 24hr front desk exception.
+    &quot;wakeUpCalls&quot;: True or False, # Wake up calls. By direction of the guest, a hotel staff member will phone the guest unit at the requested hour. Also known as morning call.
+    &quot;wakeUpCallsException&quot;: &quot;A String&quot;, # Wake up calls exception.
+  },
+  &quot;someUnits&quot;: { # Features and available amenities in the guest unit. # Output only. Some units on the property have as much as these attributes.
+    &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+    &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+    &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+    &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+    &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+    &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+    &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+    &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+    &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+    &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+    &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+    &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+    &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+    &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+    &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+    &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+    &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+    &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+    &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+      &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+      &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+      &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+      &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+      &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+      &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+      &quot;lakeView&quot;: True or False, # Lake view.
+      &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+      &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+      &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+      &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+      &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+      &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+      &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+      &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+      &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+    },
+  },
+  &quot;transportation&quot;: { # Vehicles or vehicular services facilitated or owned by the property. # Vehicles or vehicular services facilitated or owned by the property.
+    &quot;airportShuttle&quot;: True or False, # Airport shuttle. The hotel provides guests with a chauffeured van or bus to and from the airport. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them. Applies if the hotel has a third-party shuttle service (office/desk etc.) within the hotel. As long as hotel provides this service, it doesn&#x27;t matter if it&#x27;s directly with them or a third party they work with. Does not apply if guest has to coordinate with an entity outside/other than the hotel.
+    &quot;airportShuttleException&quot;: &quot;A String&quot;, # Airport shuttle exception.
+    &quot;carRentalOnProperty&quot;: True or False, # Car rental on property. A branch of a rental car company with a processing desk in the hotel. Available cars for rent may be awaiting at the hotel or in a nearby lot.
+    &quot;carRentalOnPropertyException&quot;: &quot;A String&quot;, # Car rental on property exception.
+    &quot;freeAirportShuttle&quot;: True or False, # Free airport shuttle. Airport shuttle is free to guests. Must be free to all guests without any conditions.
+    &quot;freeAirportShuttleException&quot;: &quot;A String&quot;, # Free airport shuttle exception.
+    &quot;freePrivateCarService&quot;: True or False, # Free private car service. Private chauffeured car service is free to guests.
+    &quot;freePrivateCarServiceException&quot;: &quot;A String&quot;, # Free private car service exception.
+    &quot;localShuttle&quot;: True or False, # Local shuttle. A car, van or bus provided by the hotel to transport guests to destinations within a specified range of distance around the hotel. Usually shopping and/or convention centers, downtown districts, or beaches. Can be free or for a fee.
+    &quot;localShuttleException&quot;: &quot;A String&quot;, # Local shuttle exception.
+    &quot;privateCarService&quot;: True or False, # Private car service. Hotel provides a private chauffeured car to transport guests to destinations. Passengers in the car are either alone or are known to one another and have requested the car together. Service can be free or for a fee and travel distance is usually limited to a specific range. Not a taxi.
+    &quot;privateCarServiceException&quot;: &quot;A String&quot;, # Private car service exception.
+    &quot;transfer&quot;: True or False, # Transfer. Hotel provides a shuttle service or car service to take guests to and from the nearest airport or train station. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them.
+    &quot;transferException&quot;: &quot;A String&quot;, # Transfer exception.
+  },
+  &quot;wellness&quot;: { # Guest facilities at the property to promote or maintain health, beauty, and fitness. # Guest facilities at the property to promote or maintain health, beauty, and fitness.
+    &quot;doctorOnCall&quot;: True or False, # Doctor on call. The hotel has a contract with a medical professional who provides services to hotel guests should they fall ill during their stay. The doctor may or may not have an on-site office or be at the hotel at all times.
+    &quot;doctorOnCallException&quot;: &quot;A String&quot;, # Doctor on call exception.
+    &quot;ellipticalMachine&quot;: True or False, # Elliptical machine. An electric, stationary fitness machine with pedals that simulates climbing, walking or running and provides a user-controlled range of speeds and tensions. May not have arm-controlled levers to work out the upper body as well. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;ellipticalMachineException&quot;: &quot;A String&quot;, # Elliptical machine exception.
+    &quot;fitnessCenter&quot;: True or False, # Fitness center. A room or building at the hotel containing equipment to promote physical activity, such as treadmills, elliptical machines, stationary bikes, weight machines, free weights, and/or stretching mats. Use of the fitness center can be free or for a fee. May or may not be staffed. May or may not offer instructor-led classes in various styles of physical conditioning. May or may not be open 24/7. May or may not include locker rooms and showers. Also known as health club, gym, fitness room, health center.
+    &quot;fitnessCenterException&quot;: &quot;A String&quot;, # Fitness center exception.
+    &quot;freeFitnessCenter&quot;: True or False, # Free fitness center. Guests may use the fitness center for free.
+    &quot;freeFitnessCenterException&quot;: &quot;A String&quot;, # Free fitness center exception.
+    &quot;freeWeights&quot;: True or False, # Free weights. Individual handheld fitness equipment of varied weights used for upper body strength training or bodybuilding. Also known as barbells, dumbbells, or kettlebells. Often stored on a rack with the weights arranged from light to heavy. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;freeWeightsException&quot;: &quot;A String&quot;, # Free weights exception.
+    &quot;massage&quot;: True or False, # Massage. A service provided by a trained massage therapist involving the physical manipulation of a guest&#x27;s muscles in order to achieve relaxation or pain relief.
+    &quot;massageException&quot;: &quot;A String&quot;, # Massage exception.
+    &quot;salon&quot;: True or False, # Salon. A room at the hotel where professionals provide hair styling services such as shampooing, blow drying, hair dos, hair cutting and hair coloring. Also known as hairdresser or beauty salon.
+    &quot;salonException&quot;: &quot;A String&quot;, # Salon exception.
+    &quot;sauna&quot;: True or False, # Sauna. A wood-paneled room heated to a high temperature where guests sit on built-in wood benches for the purpose of perspiring and relaxing their muscles. Can be dry or slightly wet heat. Not a steam room.
+    &quot;saunaException&quot;: &quot;A String&quot;, # Sauna exception.
+    &quot;spa&quot;: True or False, # Spa. A designated area, room or building at the hotel offering health and beauty treatment through such means as steam baths, exercise equipment, and massage. May also offer facials, nail care, and hair care. Services are usually available by appointment and for an additional fee. Does not apply if hotel only offers a steam room; must offer other beauty and/or health treatments as well.
+    &quot;spaException&quot;: &quot;A String&quot;, # Spa exception.
+    &quot;treadmill&quot;: True or False, # Treadmill. An electric stationary fitness machine that simulates a moving path to promote walking or running within a range of user-controlled speeds and inclines. Also known as running machine. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;treadmillException&quot;: &quot;A String&quot;, # Treadmill exception.
+    &quot;weightMachine&quot;: True or False, # Weight machine. Non-electronic fitness equipment designed for the user to target the exertion of different muscles. Usually incorporates a padded seat, a stack of flat weights and various bars and pulleys. May be designed for toning a specific part of the body or may involve different user-controlled settings, hardware and pulleys so as to provide an overall workout in one machine. Commonly found in a gym, fitness center, fitness room, or health club.
+    &quot;weightMachineException&quot;: &quot;A String&quot;, # Weight machine exception.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="updateLodging">updateLodging(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the Lodging of a specific location.
+
+Args:
+  name: string, Required. Google identifier for this location in the form: `locations/{location_id}/lodging` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Lodging of a location that provides accomodations.
+  &quot;accessibility&quot;: { # Physical adaptations made to the property in consideration of varying levels of human physical ability. # Physical adaptations made to the property in consideration of varying levels of human physical ability.
+    &quot;mobilityAccessible&quot;: True or False, # Mobility accessible. Throughout the property there are physical adaptations to ease the stay of a person in a wheelchair, such as auto-opening doors, wide elevators, wide bathrooms or ramps.
+    &quot;mobilityAccessibleElevator&quot;: True or False, # Mobility accessible elevator. A lift that transports people from one level to another and is built to accommodate a wheelchair-using passenger owing to the width of its doors and placement of call buttons.
+    &quot;mobilityAccessibleElevatorException&quot;: &quot;A String&quot;, # Mobility accessible elevator exception.
+    &quot;mobilityAccessibleException&quot;: &quot;A String&quot;, # Mobility accessible exception.
+    &quot;mobilityAccessibleParking&quot;: True or False, # Mobility accessible parking. The presence of a marked, designated area of prescribed size in which only registered, labeled vehicles transporting a person with physical challenges may park.
+    &quot;mobilityAccessibleParkingException&quot;: &quot;A String&quot;, # Mobility accessible parking exception.
+    &quot;mobilityAccessiblePool&quot;: True or False, # Mobility accessible pool. A swimming pool equipped with a mechanical chair that can be lowered and raised for the purpose of moving physically challenged guests into and out of the pool. May be powered by electricity or water. Also known as pool lift.
+    &quot;mobilityAccessiblePoolException&quot;: &quot;A String&quot;, # Mobility accessible pool exception.
+  },
+  &quot;activities&quot;: { # Amenities and features related to leisure and play. # Amenities and features related to leisure and play.
+    &quot;beachAccess&quot;: True or False, # Beach access. The hotel property is in close proximity to a beach and offers a way to get to that beach. This can include a route to the beach such as stairs down if hotel is on a bluff, or a short trail. Not the same as beachfront (with beach access, the hotel&#x27;s proximity is close to but not right on the beach).
+    &quot;beachAccessException&quot;: &quot;A String&quot;, # Beach access exception.
+    &quot;beachFront&quot;: True or False, # Breach front. The hotel property is physically located on the beach alongside an ocean, sea, gulf, or bay. It is not on a lake, river, stream, or pond. The hotel is not separated from the beach by a public road allowing vehicular, pedestrian, or bicycle traffic.
+    &quot;beachFrontException&quot;: &quot;A String&quot;, # Beach front exception.
+    &quot;bicycleRental&quot;: True or False, # Bicycle rental. The hotel owns bicycles that it permits guests to borrow and use. Can be free or for a fee.
+    &quot;bicycleRentalException&quot;: &quot;A String&quot;, # Bicycle rental exception.
+    &quot;boutiqueStores&quot;: True or False, # Boutique stores. There are stores selling clothing, jewelry, art and decor either on hotel premises or very close by. Does not refer to the hotel gift shop or convenience store.
+    &quot;boutiqueStoresException&quot;: &quot;A String&quot;, # Boutique stores exception.
+    &quot;casino&quot;: True or False, # Casino. A space designated for gambling and gaming featuring croupier-run table and card games, as well as electronic slot machines. May be on hotel premises or located nearby.
+    &quot;casinoException&quot;: &quot;A String&quot;, # Casino exception.
+    &quot;freeBicycleRental&quot;: True or False, # Free bicycle rental. The hotel owns bicycles that it permits guests to borrow and use for free.
+    &quot;freeBicycleRentalException&quot;: &quot;A String&quot;, # Free bicycle rental exception.
+    &quot;freeWatercraftRental&quot;: True or False, # Free watercraft rental. The hotel owns watercraft that it permits guests to borrow and use for free.
+    &quot;freeWatercraftRentalException&quot;: &quot;A String&quot;, # Free Watercraft rental exception.
+    &quot;gameRoom&quot;: True or False, # Game room. There is a room at the hotel containing electronic machines for play such as pinball, prize machines, driving simulators, and other items commonly found at a family fun center or arcade. May also include non-electronic games like pool, foosball, darts, and more. May or may not be designed for children. Also known as arcade, fun room, or family fun center.
+    &quot;gameRoomException&quot;: &quot;A String&quot;, # Game room exception.
+    &quot;golf&quot;: True or False, # Golf. There is a golf course on hotel grounds or there is a nearby, independently run golf course that allows use by hotel guests. Can be free or for a fee.
+    &quot;golfException&quot;: &quot;A String&quot;, # Golf exception.
+    &quot;horsebackRiding&quot;: True or False, # Horseback riding. The hotel has a horse barn onsite or an affiliation with a nearby barn to allow for guests to sit astride a horse and direct it to walk, trot, cantor, gallop and/or jump. Can be in a riding ring, on designated paths, or in the wilderness. May or may not involve instruction.
+    &quot;horsebackRidingException&quot;: &quot;A String&quot;, # Horseback riding exception.
+    &quot;nightclub&quot;: True or False, # Nightclub. There is a room at the hotel with a bar, a dance floor, and seating where designated staffers play dance music. There may also be a designated area for the performance of live music, singing and comedy acts.
+    &quot;nightclubException&quot;: &quot;A String&quot;, # Nightclub exception.
+    &quot;privateBeach&quot;: True or False, # Private beach. The beach which is in close proximity to the hotel is open only to guests.
+    &quot;privateBeachException&quot;: &quot;A String&quot;, # Private beach exception.
+    &quot;scuba&quot;: True or False, # Scuba. The provision for guests to dive under naturally occurring water fitted with a self-contained underwater breathing apparatus (SCUBA) for the purpose of exploring underwater life. Apparatus consists of a tank providing oxygen to the diver through a mask. Requires certification of the diver and supervision. The hotel may have the activity at its own waterfront or have an affiliation with a nearby facility. Required equipment is most often supplied to guests. Can be free or for a fee. Not snorkeling. Not done in a swimming pool.
+    &quot;scubaException&quot;: &quot;A String&quot;, # Scuba exception.
+    &quot;snorkeling&quot;: True or False, # Snorkeling. The provision for guests to participate in a recreational water activity in which swimmers wear a diving mask, a simple, shaped breathing tube and flippers/swim fins for the purpose of exploring below the surface of an ocean, gulf or lake. Does not usually require user certification or professional supervision. Equipment may or may not be available for rent or purchase. Not scuba diving.
+    &quot;snorkelingException&quot;: &quot;A String&quot;, # Snorkeling exception.
+    &quot;tennis&quot;: True or False, # Tennis. The hotel has the requisite court(s) on site or has an affiliation with a nearby facility for the purpose of providing guests with the opportunity to play a two-sided court-based game in which players use a stringed racquet to hit a ball across a net to the side of the opposing player. The court can be indoors or outdoors. Instructors, racquets and balls may or may not be provided.
+    &quot;tennisException&quot;: &quot;A String&quot;, # Tennis exception.
+    &quot;waterSkiing&quot;: True or False, # Water skiing. The provision of giving guests the opportunity to be pulled across naturally occurring water while standing on skis and holding a tow rope attached to a motorboat. Can occur on hotel premises or at a nearby waterfront. Most often performed in a lake or ocean.
+    &quot;waterSkiingException&quot;: &quot;A String&quot;, # Water skiing exception.
+    &quot;watercraftRental&quot;: True or False, # Watercraft rental. The hotel owns water vessels that it permits guests to borrow and use. Can be free or for a fee. Watercraft may include boats, pedal boats, rowboats, sailboats, powerboats, canoes, kayaks, or personal watercraft (such as a Jet Ski).
+    &quot;watercraftRentalException&quot;: &quot;A String&quot;, # Watercraft rental exception.
+  },
+  &quot;allUnits&quot;: { # Features and available amenities in the guest unit. # Output only. All units on the property have at least these attributes.
+    &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+    &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+    &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+    &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+    &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+    &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+    &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+    &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+    &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+    &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+    &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+    &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+    &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+    &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+    &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+    &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+    &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+    &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+    &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+      &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+      &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+      &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+      &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+      &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+      &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+      &quot;lakeView&quot;: True or False, # Lake view.
+      &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+      &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+      &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+      &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+      &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+      &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+      &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+      &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+      &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+    },
+  },
+  &quot;business&quot;: { # Features of the property of specific interest to the business traveler. # Features of the property of specific interest to the business traveler.
+    &quot;businessCenter&quot;: True or False, # Business center. A designated room at the hotel with one or more desks and equipped with guest-use computers, printers, fax machines and/or photocopiers. May or may not be open 24/7. May or may not require a key to access. Not a meeting room or conference room.
+    &quot;businessCenterException&quot;: &quot;A String&quot;, # Business center exception.
+    &quot;meetingRooms&quot;: True or False, # Meeting rooms. Rooms at the hotel designated for business-related gatherings. Rooms are usually equipped with tables or desks, office chairs and audio/visual facilities to allow for presentations and conference calls. Also known as conference rooms.
+    &quot;meetingRoomsCount&quot;: 42, # Meeting rooms count. The number of meeting rooms at the property.
+    &quot;meetingRoomsCountException&quot;: &quot;A String&quot;, # Meeting rooms count exception.
+    &quot;meetingRoomsException&quot;: &quot;A String&quot;, # Meeting rooms exception.
+  },
+  &quot;commonLivingArea&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features of the shared living areas available in this Lodging.
+    &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+      &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+      &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+      &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+      &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+      &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+      &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+      &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+      &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+      &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+      &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+      &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+      &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+      &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+      &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+      &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+      &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+    },
+    &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+      &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+      &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+      &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+      &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+      &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+      &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+      &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+      &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+      &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+      &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+      &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+      &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+      &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+      &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+      &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+      &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+      &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+      &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+      &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+      &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+      &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+      &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+      &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+      &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+      &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+      &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+      &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+      &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+      &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+      &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+      &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+      &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+    },
+    &quot;features&quot;: { # Features in the living area. # Features in the living area.
+      &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+      &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+      &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+      &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+      &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+      &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+      &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+      &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+      &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+      &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+      &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+      &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+      &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+      &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+      &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+      &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+      &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+      &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+      &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+      &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+      &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+      &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+      &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+      &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+      &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+      &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+      &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+      &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+      &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+      &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+      &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+      &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+      &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+      &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+      &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+      &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+      &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+      &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+      &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+      &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+    },
+    &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+      &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+      &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+      &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+      &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+      &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+      &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+      &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+      &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+      &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+      &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+      &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+      &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+    },
+    &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+      &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+      &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+      &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+      &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+      &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+      &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+      &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+      &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+      &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+      &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+      &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+      &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+      &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+      &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+      &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+      &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+      &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+      &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+      &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+      &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+      &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+      &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+      &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+      &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+      &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+      &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+      &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+      &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+    },
+  },
+  &quot;connectivity&quot;: { # The ways in which the property provides guests with the ability to access the internet. # The ways in which the property provides guests with the ability to access the internet.
+    &quot;freeWifi&quot;: True or False, # Free wifi. The hotel offers guests wifi for free.
+    &quot;freeWifiException&quot;: &quot;A String&quot;, # Free wifi exception.
+    &quot;publicAreaWifiAvailable&quot;: True or False, # Public area wifi available. Guests have the ability to wirelessly connect to the internet in the areas of the hotel accessible to anyone. Can be free or for a fee.
+    &quot;publicAreaWifiAvailableException&quot;: &quot;A String&quot;, # Public area wifi available exception.
+    &quot;publicInternetTerminal&quot;: True or False, # Public internet terminal. An area of the hotel supplied with computers and designated for the purpose of providing guests with the ability to access the internet.
+    &quot;publicInternetTerminalException&quot;: &quot;A String&quot;, # Public internet terminal exception.
+    &quot;wifiAvailable&quot;: True or False, # Wifi available. The hotel provides the ability for guests to wirelessly connect to the internet. Can be in the public areas of the hotel and/or in the guest rooms. Can be free or for a fee.
+    &quot;wifiAvailableException&quot;: &quot;A String&quot;, # Wifi available exception.
+  },
+  &quot;families&quot;: { # Services and amenities for families and young guests. # Services and amenities for families and young guests.
+    &quot;babysitting&quot;: True or False, # Babysitting. Child care that is offered by hotel staffers or coordinated by hotel staffers with local child care professionals. Can be free or for a fee.
+    &quot;babysittingException&quot;: &quot;A String&quot;, # Babysitting exception.
+    &quot;kidsActivities&quot;: True or False, # Kids activities. Recreational options such as sports, films, crafts and games designed for the enjoyment of children and offered at the hotel. May or may not be supervised. May or may not be at a designated time or place. Cab be free or for a fee.
+    &quot;kidsActivitiesException&quot;: &quot;A String&quot;, # Kids activities exception.
+    &quot;kidsClub&quot;: True or False, # Kids club. An organized program of group activities held at the hotel and designed for the enjoyment of children. Facilitated by hotel staff (or staff procured by the hotel) in an area(s) designated for the purpose of entertaining children without their parents. May include games, outings, water sports, team sports, arts and crafts, and films. Usually has set hours. Can be free or for a fee. Also known as Kids Camp or Kids program.
+    &quot;kidsClubException&quot;: &quot;A String&quot;, # Kids club exception.
+  },
+  &quot;foodAndDrink&quot;: { # Meals, snacks, and beverages available at the property. # Meals, snacks, and beverages available at the property.
+    &quot;bar&quot;: True or False, # Bar. A designated room, lounge or area of an on-site restaurant with seating at a counter behind which a hotel staffer takes the guest&#x27;s order and provides the requested alcoholic drink. Can be indoors or outdoors. Also known as Pub.
+    &quot;barException&quot;: &quot;A String&quot;, # Bar exception.
+    &quot;breakfastAvailable&quot;: True or False, # Breakfast available. The morning meal is offered to all guests. Can be free or for a fee.
+    &quot;breakfastAvailableException&quot;: &quot;A String&quot;, # Breakfast available exception.
+    &quot;breakfastBuffet&quot;: True or False, # Breakfast buffet. Breakfast meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+    &quot;breakfastBuffetException&quot;: &quot;A String&quot;, # Breakfast buffet exception.
+    &quot;buffet&quot;: True or False, # Buffet. A type of meal where guests serve themselves from a variety of dishes/foods that are put out on a table. Includes lunch and/or dinner meals. A breakfast-only buffet is not sufficient.
+    &quot;buffetException&quot;: &quot;A String&quot;, # Buffet exception.
+    &quot;dinnerBuffet&quot;: True or False, # Dinner buffet. Dinner meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+    &quot;dinnerBuffetException&quot;: &quot;A String&quot;, # Dinner buffet exception.
+    &quot;freeBreakfast&quot;: True or False, # Free breakfast. Breakfast is offered for free to all guests. Does not apply if limited to certain room packages.
+    &quot;freeBreakfastException&quot;: &quot;A String&quot;, # Free breakfast exception.
+    &quot;restaurant&quot;: True or False, # Restaurant. A business onsite at the hotel that is open to the public as well as guests, and offers meals and beverages to consume at tables or counters. May or may not include table service. Also known as cafe, buffet, eatery. A &quot;breakfast room&quot; where the hotel serves breakfast only to guests (not the general public) does not count as a restaurant.
+    &quot;restaurantException&quot;: &quot;A String&quot;, # Restaurant exception.
+    &quot;restaurantsCount&quot;: 42, # Restaurants count. The number of restaurants at the hotel.
+    &quot;restaurantsCountException&quot;: &quot;A String&quot;, # Restaurants count exception.
+    &quot;roomService&quot;: True or False, # Room service. A hotel staffer delivers meals prepared onsite to a guest&#x27;s room as per their request. May or may not be available during specific hours. Services should be available to all guests (not based on rate/room booked/reward program, etc).
+    &quot;roomServiceException&quot;: &quot;A String&quot;, # Room service exception.
+    &quot;tableService&quot;: True or False, # Table service. A restaurant in which a staff member is assigned to a guest&#x27;s table to take their order, deliver and clear away food, and deliver the bill, if applicable. Also known as sit-down restaurant.
+    &quot;tableServiceException&quot;: &quot;A String&quot;, # Table service exception.
+    &quot;twentyFourHourRoomService&quot;: True or False, # 24hr room service. Room service is available 24 hours a day.
+    &quot;twentyFourHourRoomServiceException&quot;: &quot;A String&quot;, # 24hr room service exception.
+    &quot;vendingMachine&quot;: True or False, # Vending machine. A glass-fronted mechanized cabinet displaying and dispensing snacks and beverages for purchase by coins, paper money and/or credit cards.
+    &quot;vendingMachineException&quot;: &quot;A String&quot;, # Vending machine exception.
+  },
+  &quot;guestUnits&quot;: [ # Individual GuestUnitTypes that are available in this Lodging.
+    { # A specific type of unit primarily defined by its features.
+      &quot;codes&quot;: [ # Required. Unit or room code identifiers for a single GuestUnitType. Each code must be unique within a Lodging instance.
+        &quot;A String&quot;,
+      ],
+      &quot;features&quot;: { # Features and available amenities in the guest unit. # Features and available amenities of the GuestUnitType.
+        &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+        &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+        &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+        &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+        &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+        &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+        &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+        &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+        &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+        &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+        &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+        &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+        &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+        &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+        &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+        &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+        &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+        &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+        &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+          &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+            &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+            &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+            &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+            &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+            &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+            &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+            &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+            &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+            &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+            &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+            &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+            &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+            &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+            &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+            &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+            &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+          },
+          &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+            &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+            &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+            &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+            &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+            &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+            &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+            &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+            &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+            &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+            &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+            &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+            &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+            &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+            &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+            &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+            &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+            &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+            &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+            &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+            &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+            &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+            &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+            &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+            &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+            &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+            &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+            &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+            &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+            &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+            &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+            &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+            &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+          },
+          &quot;features&quot;: { # Features in the living area. # Features in the living area.
+            &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+            &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+            &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+            &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+            &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+            &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+            &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+            &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+            &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+            &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+            &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+            &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+            &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+            &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+            &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+            &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+            &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+            &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+            &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+            &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+            &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+            &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+            &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+            &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+            &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+            &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+            &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+            &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+            &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+            &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+            &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+            &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+            &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+            &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+            &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+            &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+            &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+            &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+            &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+            &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+          },
+          &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+            &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+            &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+            &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+            &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+            &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+            &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+            &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+            &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+            &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+            &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+            &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+            &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+          },
+          &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+            &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+            &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+            &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+            &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+            &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+            &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+            &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+            &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+            &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+            &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+            &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+            &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+            &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+            &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+            &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+            &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+            &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+            &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+            &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+            &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+            &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+            &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+            &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+            &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+            &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+            &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+            &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+            &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+          },
+        },
+        &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+          &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+          &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+          &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+          &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+          &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+          &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+          &quot;lakeView&quot;: True or False, # Lake view.
+          &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+          &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+          &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+          &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+          &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+          &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+          &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+          &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+          &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+        },
+      },
+      &quot;label&quot;: &quot;A String&quot;, # Required. Short, English label or name of the GuestUnitType. Target &lt;50 chars.
+    },
+  ],
+  &quot;healthAndSafety&quot;: { # Health and safety measures implemented by the hotel during COVID-19. # Health and safety measures implemented by the hotel during COVID-19.
+    &quot;enhancedCleaning&quot;: { # Enhanced cleaning measures implemented by the hotel during COVID-19. # Enhanced cleaning measures implemented by the hotel during COVID-19.
+      &quot;commercialGradeDisinfectantCleaning&quot;: True or False, # Commercial-grade disinfectant used to clean the property.
+      &quot;commercialGradeDisinfectantCleaningException&quot;: &quot;A String&quot;, # Commercial grade disinfectant cleaning exception.
+      &quot;commonAreasEnhancedCleaning&quot;: True or False, # Enhanced cleaning of common areas.
+      &quot;commonAreasEnhancedCleaningException&quot;: &quot;A String&quot;, # Common areas enhanced cleaning exception.
+      &quot;employeesTrainedCleaningProcedures&quot;: True or False, # Employees trained in COVID-19 cleaning procedures.
+      &quot;employeesTrainedCleaningProceduresException&quot;: &quot;A String&quot;, # Employees trained cleaning procedures exception.
+      &quot;employeesTrainedThoroughHandWashing&quot;: True or False, # Employees trained in thorough hand-washing.
+      &quot;employeesTrainedThoroughHandWashingException&quot;: &quot;A String&quot;, # Employees trained thorough hand washing exception.
+      &quot;employeesWearProtectiveEquipment&quot;: True or False, # Employees wear masks, face shields, and/or gloves.
+      &quot;employeesWearProtectiveEquipmentException&quot;: &quot;A String&quot;, # Employees wear protective equipment exception.
+      &quot;guestRoomsEnhancedCleaning&quot;: True or False, # Enhanced cleaning of guest rooms.
+      &quot;guestRoomsEnhancedCleaningException&quot;: &quot;A String&quot;, # Guest rooms enhanced cleaning exception.
+    },
+    &quot;increasedFoodSafety&quot;: { # Increased food safety measures implemented by the hotel during COVID-19. # Increased food safety measures implemented by the hotel during COVID-19.
+      &quot;diningAreasAdditionalSanitation&quot;: True or False, # Additional sanitation in dining areas.
+      &quot;diningAreasAdditionalSanitationException&quot;: &quot;A String&quot;, # Dining areas additional sanitation exception.
+      &quot;disposableFlatware&quot;: True or False, # Disposable flatware.
+      &quot;disposableFlatwareException&quot;: &quot;A String&quot;, # Disposable flatware exception.
+      &quot;foodPreparationAndServingAdditionalSafety&quot;: True or False, # Additional safety measures during food prep and serving.
+      &quot;foodPreparationAndServingAdditionalSafetyException&quot;: &quot;A String&quot;, # Food preparation and serving additional safety exception.
+      &quot;individualPackagedMeals&quot;: True or False, # Individually-packaged meals.
+      &quot;individualPackagedMealsException&quot;: &quot;A String&quot;, # Individual packaged meals exception.
+      &quot;singleUseFoodMenus&quot;: True or False, # Single-use menus.
+      &quot;singleUseFoodMenusException&quot;: &quot;A String&quot;, # Single use food menus exception.
+    },
+    &quot;minimizedContact&quot;: { # Minimized contact measures implemented by the hotel during COVID-19. # Minimized contact measures implemented by the hotel during COVID-19.
+      &quot;contactlessCheckinCheckout&quot;: True or False, # No-contact check-in and check-out.
+      &quot;contactlessCheckinCheckoutException&quot;: &quot;A String&quot;, # Contactless check-in check-out exception.
+      &quot;digitalGuestRoomKeys&quot;: True or False, # Keyless mobile entry to guest rooms.
+      &quot;digitalGuestRoomKeysException&quot;: &quot;A String&quot;, # Digital guest room keys exception.
+      &quot;housekeepingScheduledRequestOnly&quot;: True or False, # Housekeeping scheduled by request only.
+      &quot;housekeepingScheduledRequestOnlyException&quot;: &quot;A String&quot;, # Housekeeping scheduled request only exception.
+      &quot;noHighTouchItemsCommonAreas&quot;: True or False, # High-touch items, such as magazines, removed from common areas.
+      &quot;noHighTouchItemsCommonAreasException&quot;: &quot;A String&quot;, # No high touch items common areas exception.
+      &quot;noHighTouchItemsGuestRooms&quot;: True or False, # High-touch items, such as decorative pillows, removed from guest rooms.
+      &quot;noHighTouchItemsGuestRoomsException&quot;: &quot;A String&quot;, # No high touch items guest rooms exception.
+      &quot;plasticKeycardsDisinfected&quot;: True or False, # Plastic key cards are disinfected or discarded.
+      &quot;plasticKeycardsDisinfectedException&quot;: &quot;A String&quot;, # Plastic keycards disinfected exception.
+      &quot;roomBookingsBuffer&quot;: True or False, # Buffer maintained between room bookings.
+      &quot;roomBookingsBufferException&quot;: &quot;A String&quot;, # Room bookings buffer exception.
+    },
+    &quot;personalProtection&quot;: { # Personal protection measures implemented by the hotel during COVID-19. # Personal protection measures implemented by the hotel during COVID-19.
+      &quot;commonAreasOfferSanitizingItems&quot;: True or False, # Hand-sanitizer and/or sanitizing wipes are offered in common areas.
+      &quot;commonAreasOfferSanitizingItemsException&quot;: &quot;A String&quot;, # Common areas offer sanitizing items exception.
+      &quot;faceMaskRequired&quot;: True or False, # Masks required on the property.
+      &quot;faceMaskRequiredException&quot;: &quot;A String&quot;, # Face mask required exception.
+      &quot;guestRoomHygieneKitsAvailable&quot;: True or False, # In-room hygiene kits with masks, hand sanitizer, and/or antibacterial wipes.
+      &quot;guestRoomHygieneKitsAvailableException&quot;: &quot;A String&quot;, # Guest room hygiene kits available exception.
+      &quot;protectiveEquipmentAvailable&quot;: True or False, # Masks and/or gloves available for guests.
+      &quot;protectiveEquipmentAvailableException&quot;: &quot;A String&quot;, # Protective equipment available exception.
+    },
+    &quot;physicalDistancing&quot;: { # Physical distancing measures implemented by the hotel during COVID-19. # Physical distancing measures implemented by the hotel during COVID-19.
+      &quot;commonAreasPhysicalDistancingArranged&quot;: True or False, # Common areas arranged to maintain physical distancing.
+      &quot;commonAreasPhysicalDistancingArrangedException&quot;: &quot;A String&quot;, # Common areas physical distancing arranged exception.
+      &quot;physicalDistancingRequired&quot;: True or False, # Physical distancing required.
+      &quot;physicalDistancingRequiredException&quot;: &quot;A String&quot;, # Physical distancing required exception.
+      &quot;safetyDividers&quot;: True or False, # Safety dividers at front desk and other locations.
+      &quot;safetyDividersException&quot;: &quot;A String&quot;, # Safety dividers exception.
+      &quot;sharedAreasLimitedOccupancy&quot;: True or False, # Guest occupancy limited within shared facilities.
+      &quot;sharedAreasLimitedOccupancyException&quot;: &quot;A String&quot;, # Shared areas limited occupancy exception.
+      &quot;wellnessAreasHavePrivateSpaces&quot;: True or False, # Private spaces designated in spa and wellness areas.
+      &quot;wellnessAreasHavePrivateSpacesException&quot;: &quot;A String&quot;, # Wellness areas have private spaces exception.
+    },
+  },
+  &quot;housekeeping&quot;: { # Conveniences provided in guest units to facilitate an easier, more comfortable stay. # Conveniences provided in guest units to facilitate an easier, more comfortable stay.
+    &quot;dailyHousekeeping&quot;: True or False, # Daily housekeeping. Guest units are cleaned by hotel staff daily during guest&#x27;s stay.
+    &quot;dailyHousekeepingException&quot;: &quot;A String&quot;, # Daily housekeeping exception.
+    &quot;housekeepingAvailable&quot;: True or False, # Housekeeping available. Guest units are cleaned by hotel staff during guest&#x27;s stay. Schedule may vary from daily, weekly, or specific days of the week.
+    &quot;housekeepingAvailableException&quot;: &quot;A String&quot;, # Housekeeping available exception.
+    &quot;turndownService&quot;: True or False, # Turndown service. Hotel staff enters guest units to prepare the bed for sleep use. May or may not include some light housekeeping. May or may not include an evening snack or candy. Also known as evening service.
+    &quot;turndownServiceException&quot;: &quot;A String&quot;, # Turndown service exception.
+  },
+  &quot;metadata&quot;: { # Metadata for the Lodging. # Required. Metadata for the lodging.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Required. The latest time at which the Lodging data is asserted to be true in the real world. This is not necessarily the time at which the request is made.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Google identifier for this location in the form: `locations/{location_id}/lodging`
+  &quot;parking&quot;: { # Parking options at the property. # Parking options at the property.
+    &quot;electricCarChargingStations&quot;: True or False, # Electric car charging stations. Electric power stations, usually located outdoors, into which guests plug their electric cars to receive a charge.
+    &quot;electricCarChargingStationsException&quot;: &quot;A String&quot;, # Electric car charging stations exception.
+    &quot;freeParking&quot;: True or False, # Free parking. The hotel allows the cars of guests to be parked for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff. Free parking must be available to all guests (limited conditions does not apply).
+    &quot;freeParkingException&quot;: &quot;A String&quot;, # Free parking exception.
+    &quot;freeSelfParking&quot;: True or False, # Free self parking. Guests park their own cars for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply.
+    &quot;freeSelfParkingException&quot;: &quot;A String&quot;, # Free self parking exception.
+    &quot;freeValetParking&quot;: True or False, # Free valet parking. Hotel staff member parks the cars of guests. Parking with this service is free.
+    &quot;freeValetParkingException&quot;: &quot;A String&quot;, # Free valet parking exception.
+    &quot;parkingAvailable&quot;: True or False, # Parking available. The hotel allows the cars of guests to be parked. Can be free or for a fee. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff.
+    &quot;parkingAvailableException&quot;: &quot;A String&quot;, # Parking available exception.
+    &quot;selfParkingAvailable&quot;: True or False, # Self parking available. Guests park their own cars. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Can be free or for a fee.
+    &quot;selfParkingAvailableException&quot;: &quot;A String&quot;, # Self parking available exception.
+    &quot;valetParkingAvailable&quot;: True or False, # Valet parking available. Hotel staff member parks the cars of guests. Parking with this service can be free or for a fee.
+    &quot;valetParkingAvailableException&quot;: &quot;A String&quot;, # Valet parking available exception.
+  },
+  &quot;pets&quot;: { # Policies regarding guest-owned animals. # Policies regarding guest-owned animals.
+    &quot;catsAllowed&quot;: True or False, # Cats allowed. Domesticated felines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+    &quot;catsAllowedException&quot;: &quot;A String&quot;, # Cats allowed exception.
+    &quot;dogsAllowed&quot;: True or False, # Dogs allowed. Domesticated canines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+    &quot;dogsAllowedException&quot;: &quot;A String&quot;, # Dogs allowed exception.
+    &quot;petsAllowed&quot;: True or False, # Pets allowed. Household animals are allowed at the property and in the specific guest room of their owner. May or may not include dogs, cats, reptiles and/or fish. May or may not require a fee. Service animals are not considered to be pets, so not governed by this policy.
+    &quot;petsAllowedException&quot;: &quot;A String&quot;, # Pets allowed exception.
+    &quot;petsAllowedFree&quot;: True or False, # Pets allowed free. Household animals are allowed at the property and in the specific guest room of their owner for free. May or may not include dogs, cats, reptiles, and/or fish.
+    &quot;petsAllowedFreeException&quot;: &quot;A String&quot;, # Pets allowed free exception.
+  },
+  &quot;policies&quot;: { # Property rules that impact guests. # Property rules that impact guests.
+    &quot;allInclusiveAvailable&quot;: True or False, # All inclusive available. The hotel offers a rate option that includes the cost of the room, meals, activities, and other amenities that might otherwise be charged separately.
+    &quot;allInclusiveAvailableException&quot;: &quot;A String&quot;, # All inclusive available exception.
+    &quot;allInclusiveOnly&quot;: True or False, # All inclusive only. The only rate option offered by the hotel is a rate that includes the cost of the room, meals, activities and other amenities that might otherwise be charged separately.
+    &quot;allInclusiveOnlyException&quot;: &quot;A String&quot;, # All inclusive only exception.
+    &quot;checkinTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-in time. The time of the day at which the hotel begins providing guests access to their unit at the beginning of their stay.
+      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+    },
+    &quot;checkinTimeException&quot;: &quot;A String&quot;, # Check-in time exception.
+    &quot;checkoutTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-out time. The time of the day on the last day of a guest&#x27;s reserved stay at which the guest must vacate their room and settle their bill. Some hotels may offer late or early check out for a fee.
+      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+    },
+    &quot;checkoutTimeException&quot;: &quot;A String&quot;, # Check-out time exception.
+    &quot;kidsStayFree&quot;: True or False, # Kids stay free. The children of guests are allowed to stay in the room/suite of a parent or adult without an additional fee. The policy may or may not stipulate a limit of the child&#x27;s age or the overall number of children allowed.
+    &quot;kidsStayFreeException&quot;: &quot;A String&quot;, # Kids stay free exception.
+    &quot;maxChildAge&quot;: 42, # Max child age. The hotel allows children up to a certain age to stay in the room/suite of a parent or adult without an additional fee.
+    &quot;maxChildAgeException&quot;: &quot;A String&quot;, # Max child age exception.
+    &quot;maxKidsStayFreeCount&quot;: 42, # Max kids stay free count. The hotel allows a specific, defined number of children to stay in the room/suite of a parent or adult without an additional fee.
+    &quot;maxKidsStayFreeCountException&quot;: &quot;A String&quot;, # Max kids stay free count exception.
+    &quot;paymentOptions&quot;: { # Forms of payment accepted at the property. # Forms of payment accepted at the property.
+      &quot;cash&quot;: True or False, # Cash. The hotel accepts payment by paper/coin currency.
+      &quot;cashException&quot;: &quot;A String&quot;, # Cash exception.
+      &quot;cheque&quot;: True or False, # Cheque. The hotel accepts a printed document issued by the guest&#x27;s bank in the guest&#x27;s name as a form of payment.
+      &quot;chequeException&quot;: &quot;A String&quot;, # Cheque exception.
+      &quot;creditCard&quot;: True or False, # Credit card. The hotel accepts payment by a card issued by a bank or credit card company. Also known as charge card, debit card, bank card, or charge plate.
+      &quot;creditCardException&quot;: &quot;A String&quot;, # Credit card exception.
+      &quot;debitCard&quot;: True or False, # Debit card. The hotel accepts a bank-issued card that immediately deducts the charged funds from the guest&#x27;s bank account upon processing.
+      &quot;debitCardException&quot;: &quot;A String&quot;, # Debit card exception.
+      &quot;mobileNfc&quot;: True or False, # Mobile nfc. The hotel has the compatible computer hardware terminal that reads and charges a payment app on the guest&#x27;s smartphone without requiring the two devices to make physical contact. Also known as Apple Pay, Google Pay, Samsung Pay.
+      &quot;mobileNfcException&quot;: &quot;A String&quot;, # Mobile nfc exception.
+    },
+    &quot;smokeFreeProperty&quot;: True or False, # Smoke free property. Smoking is not allowed inside the building, on balconies, or in outside spaces. Hotels that offer a designated area for guests to smoke are not considered smoke-free properties.
+    &quot;smokeFreePropertyException&quot;: &quot;A String&quot;, # Smoke free property exception.
+  },
+  &quot;pools&quot;: { # Swimming pool or recreational water facilities available at the hotel. # Swimming pool or recreational water facilities available at the hotel.
+    &quot;adultPool&quot;: True or False, # Adult pool. A pool restricted for use by adults only. Can be indoors or outdoors.
+    &quot;adultPoolException&quot;: &quot;A String&quot;, # Adult pool exception.
+    &quot;hotTub&quot;: True or False, # Hot tub. A man-made pool containing bubbling water maintained at a higher temperature and circulated by aerating jets for the purpose of soaking, relaxation and hydrotherapy. Can be indoors or outdoors. Not used for active swimming. Also known as Jacuzzi. Hot tub must be in a common area where all guests can access it. Does not apply to room-specific hot tubs that are only accessible to guest occupying that room.
+    &quot;hotTubException&quot;: &quot;A String&quot;, # Hot tub exception.
+    &quot;indoorPool&quot;: True or False, # Indoor pool. A pool located inside the hotel and available for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+    &quot;indoorPoolException&quot;: &quot;A String&quot;, # Indoor pool exception.
+    &quot;indoorPoolsCount&quot;: 42, # Indoor pools count. The sum of all indoor pools at the hotel.
+    &quot;indoorPoolsCountException&quot;: &quot;A String&quot;, # Indoor pools count exception.
+    &quot;lazyRiver&quot;: True or False, # Lazy river. A man-made pool or several interconnected recreational pools built to mimic the shape and current of a winding river where guests float in the water on inflated rubber tubes. Can be indoors or outdoors.
+    &quot;lazyRiverException&quot;: &quot;A String&quot;, # Lazy river exception.
+    &quot;lifeguard&quot;: True or False, # Lifeguard. A trained member of the hotel staff stationed by the hotel&#x27;s indoor or outdoor swimming area and responsible for the safety of swimming guests.
+    &quot;lifeguardException&quot;: &quot;A String&quot;, # Lifeguard exception.
+    &quot;outdoorPool&quot;: True or False, # Outdoor pool. A pool located outside on the grounds of the hotel and available for guests to use for swimming, soaking or recreation. Use may or may not be restricted to adults and/or children.
+    &quot;outdoorPoolException&quot;: &quot;A String&quot;, # Outdoor pool exception.
+    &quot;outdoorPoolsCount&quot;: 42, # Outdoor pools count. The sum of all outdoor pools at the hotel.
+    &quot;outdoorPoolsCountException&quot;: &quot;A String&quot;, # Outdoor pools count exception.
+    &quot;pool&quot;: True or False, # Pool. The presence of a pool, either indoors or outdoors, for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+    &quot;poolException&quot;: &quot;A String&quot;, # Pool exception.
+    &quot;poolsCount&quot;: 42, # Pools count. The sum of all pools at the hotel.
+    &quot;poolsCountException&quot;: &quot;A String&quot;, # Pools count exception.
+    &quot;wadingPool&quot;: True or False, # Wading pool. A shallow pool designed for small children to play in. Can be indoors or outdoors. Also known as kiddie pool.
+    &quot;wadingPoolException&quot;: &quot;A String&quot;, # Wading pool exception.
+    &quot;waterPark&quot;: True or False, # Water park. An aquatic recreation area with a large pool or series of pools that has features such as a water slide or tube, wavepool, fountains, rope swings, and/or obstacle course. Can be indoors or outdoors. Also known as adventure pool.
+    &quot;waterParkException&quot;: &quot;A String&quot;, # Water park exception.
+    &quot;waterslide&quot;: True or False, # Waterslide. A continuously wetted chute positioned by an indoor or outdoor pool which people slide down into the water.
+    &quot;waterslideException&quot;: &quot;A String&quot;, # Waterslide exception.
+    &quot;wavePool&quot;: True or False, # Wave pool. A large indoor or outdoor pool with a machine that produces water currents to mimic the ocean&#x27;s crests.
+    &quot;wavePoolException&quot;: &quot;A String&quot;, # Wave pool exception.
+  },
+  &quot;property&quot;: { # General factual information about the property&#x27;s physical structure and important dates. # General factual information about the property&#x27;s physical structure and important dates.
+    &quot;builtYear&quot;: 42, # Built year. The year that construction of the property was completed.
+    &quot;builtYearException&quot;: &quot;A String&quot;, # Built year exception.
+    &quot;floorsCount&quot;: 42, # Floors count. The number of stories the building has from the ground floor to the top floor that are accessible to guests.
+    &quot;floorsCountException&quot;: &quot;A String&quot;, # Floors count exception.
+    &quot;lastRenovatedYear&quot;: 42, # Last renovated year. The year when the most recent renovation of the property was completed. Renovation may include all or any combination of the following: the units, the public spaces, the exterior, or the interior.
+    &quot;lastRenovatedYearException&quot;: &quot;A String&quot;, # Last renovated year exception.
+    &quot;roomsCount&quot;: 42, # Rooms count. The total number of rooms and suites bookable by guests for an overnight stay. Does not include event space, public spaces, conference rooms, fitness rooms, business centers, spa, salon, restaurants/bars, or shops.
+    &quot;roomsCountException&quot;: &quot;A String&quot;, # Rooms count exception.
+  },
+  &quot;services&quot;: { # Conveniences or help provided by the property to facilitate an easier, more comfortable stay. # Conveniences or help provided by the property to facilitate an easier, more comfortable stay.
+    &quot;baggageStorage&quot;: True or False, # Baggage storage. A provision for guests to leave their bags at the hotel when they arrive for their stay before the official check-in time. May or may not apply for guests who wish to leave their bags after check-out and before departing the locale. Also known as bag dropoff.
+    &quot;baggageStorageException&quot;: &quot;A String&quot;, # Baggage storage exception.
+    &quot;concierge&quot;: True or False, # Concierge. Hotel staff member(s) responsible for facilitating an easy, comfortable stay through making reservations for meals, sourcing theater tickets, arranging tours, finding a doctor, making recommendations, and answering questions.
+    &quot;conciergeException&quot;: &quot;A String&quot;, # Concierge exception.
+    &quot;convenienceStore&quot;: True or False, # Convenience store. A shop at the hotel primarily selling snacks, drinks, non-prescription medicines, health and beauty aids, magazines and newspapers.
+    &quot;convenienceStoreException&quot;: &quot;A String&quot;, # Convenience store exception.
+    &quot;currencyExchange&quot;: True or False, # Currency exchange. A staff member or automated machine tasked with the transaction of providing the native currency of the hotel&#x27;s locale in exchange for the foreign currency provided by a guest.
+    &quot;currencyExchangeException&quot;: &quot;A String&quot;, # Currency exchange exception.
+    &quot;elevator&quot;: True or False, # Elevator. A passenger elevator that transports guests from one story to another. Also known as lift.
+    &quot;elevatorException&quot;: &quot;A String&quot;, # Elevator exception.
+    &quot;frontDesk&quot;: True or False, # Front desk. A counter or desk in the lobby or the immediate interior of the hotel where a member of the staff greets guests and processes the information related to their stay (including check-in and check-out). May or may not be manned and open 24/7.
+    &quot;frontDeskException&quot;: &quot;A String&quot;, # Front desk exception.
+    &quot;fullServiceLaundry&quot;: True or False, # Full service laundry. Laundry and dry cleaning facilitated and handled by the hotel on behalf of the guest. Does not include the provision for guests to do their own laundry in on-site machines.
+    &quot;fullServiceLaundryException&quot;: &quot;A String&quot;, # Full service laundry exception.
+    &quot;giftShop&quot;: True or False, # Gift shop. An on-site store primarily selling souvenirs, mementos and other gift items. May or may not also sell sundries, magazines and newspapers, clothing, or snacks.
+    &quot;giftShopException&quot;: &quot;A String&quot;, # Gift shop exception.
+    &quot;languagesSpoken&quot;: [ # Languages spoken by at least one staff member.
+      { # Language spoken by at least one staff member.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Required. The BCP-47 language code for the spoken language. Currently accepted codes: ar, de, en, es, fil, fr, hi, id, it, ja, ko, nl, pt, ru, vi, yue, zh.
+        &quot;spoken&quot;: True or False, # At least one member of the staff can speak the language.
+        &quot;spokenException&quot;: &quot;A String&quot;, # Spoken exception.
+      },
+    ],
+    &quot;selfServiceLaundry&quot;: True or False, # Self service laundry. On-site clothes washers and dryers accessible to guests for the purpose of washing and drying their own clothes. May or may not require payment to use the machines.
+    &quot;selfServiceLaundryException&quot;: &quot;A String&quot;, # Self service laundry exception.
+    &quot;socialHour&quot;: True or False, # Social hour. A reception with complimentary soft drinks, tea, coffee, wine and/or cocktails in the afternoon or evening. Can be hosted by hotel staff or guests may serve themselves. Also known as wine hour. The availability of coffee/tea in the lobby throughout the day does not constitute a social or wine hour.
+    &quot;socialHourException&quot;: &quot;A String&quot;, # Social hour exception.
+    &quot;twentyFourHourFrontDesk&quot;: True or False, # 24hr front desk. Front desk is staffed 24 hours a day.
+    &quot;twentyFourHourFrontDeskException&quot;: &quot;A String&quot;, # 24hr front desk exception.
+    &quot;wakeUpCalls&quot;: True or False, # Wake up calls. By direction of the guest, a hotel staff member will phone the guest unit at the requested hour. Also known as morning call.
+    &quot;wakeUpCallsException&quot;: &quot;A String&quot;, # Wake up calls exception.
+  },
+  &quot;someUnits&quot;: { # Features and available amenities in the guest unit. # Output only. Some units on the property have as much as these attributes.
+    &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+    &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+    &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+    &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+    &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+    &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+    &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+    &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+    &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+    &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+    &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+    &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+    &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+    &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+    &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+    &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+    &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+    &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+    &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+      &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+      &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+      &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+      &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+      &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+      &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+      &quot;lakeView&quot;: True or False, # Lake view.
+      &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+      &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+      &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+      &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+      &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+      &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+      &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+      &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+      &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+    },
+  },
+  &quot;transportation&quot;: { # Vehicles or vehicular services facilitated or owned by the property. # Vehicles or vehicular services facilitated or owned by the property.
+    &quot;airportShuttle&quot;: True or False, # Airport shuttle. The hotel provides guests with a chauffeured van or bus to and from the airport. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them. Applies if the hotel has a third-party shuttle service (office/desk etc.) within the hotel. As long as hotel provides this service, it doesn&#x27;t matter if it&#x27;s directly with them or a third party they work with. Does not apply if guest has to coordinate with an entity outside/other than the hotel.
+    &quot;airportShuttleException&quot;: &quot;A String&quot;, # Airport shuttle exception.
+    &quot;carRentalOnProperty&quot;: True or False, # Car rental on property. A branch of a rental car company with a processing desk in the hotel. Available cars for rent may be awaiting at the hotel or in a nearby lot.
+    &quot;carRentalOnPropertyException&quot;: &quot;A String&quot;, # Car rental on property exception.
+    &quot;freeAirportShuttle&quot;: True or False, # Free airport shuttle. Airport shuttle is free to guests. Must be free to all guests without any conditions.
+    &quot;freeAirportShuttleException&quot;: &quot;A String&quot;, # Free airport shuttle exception.
+    &quot;freePrivateCarService&quot;: True or False, # Free private car service. Private chauffeured car service is free to guests.
+    &quot;freePrivateCarServiceException&quot;: &quot;A String&quot;, # Free private car service exception.
+    &quot;localShuttle&quot;: True or False, # Local shuttle. A car, van or bus provided by the hotel to transport guests to destinations within a specified range of distance around the hotel. Usually shopping and/or convention centers, downtown districts, or beaches. Can be free or for a fee.
+    &quot;localShuttleException&quot;: &quot;A String&quot;, # Local shuttle exception.
+    &quot;privateCarService&quot;: True or False, # Private car service. Hotel provides a private chauffeured car to transport guests to destinations. Passengers in the car are either alone or are known to one another and have requested the car together. Service can be free or for a fee and travel distance is usually limited to a specific range. Not a taxi.
+    &quot;privateCarServiceException&quot;: &quot;A String&quot;, # Private car service exception.
+    &quot;transfer&quot;: True or False, # Transfer. Hotel provides a shuttle service or car service to take guests to and from the nearest airport or train station. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them.
+    &quot;transferException&quot;: &quot;A String&quot;, # Transfer exception.
+  },
+  &quot;wellness&quot;: { # Guest facilities at the property to promote or maintain health, beauty, and fitness. # Guest facilities at the property to promote or maintain health, beauty, and fitness.
+    &quot;doctorOnCall&quot;: True or False, # Doctor on call. The hotel has a contract with a medical professional who provides services to hotel guests should they fall ill during their stay. The doctor may or may not have an on-site office or be at the hotel at all times.
+    &quot;doctorOnCallException&quot;: &quot;A String&quot;, # Doctor on call exception.
+    &quot;ellipticalMachine&quot;: True or False, # Elliptical machine. An electric, stationary fitness machine with pedals that simulates climbing, walking or running and provides a user-controlled range of speeds and tensions. May not have arm-controlled levers to work out the upper body as well. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;ellipticalMachineException&quot;: &quot;A String&quot;, # Elliptical machine exception.
+    &quot;fitnessCenter&quot;: True or False, # Fitness center. A room or building at the hotel containing equipment to promote physical activity, such as treadmills, elliptical machines, stationary bikes, weight machines, free weights, and/or stretching mats. Use of the fitness center can be free or for a fee. May or may not be staffed. May or may not offer instructor-led classes in various styles of physical conditioning. May or may not be open 24/7. May or may not include locker rooms and showers. Also known as health club, gym, fitness room, health center.
+    &quot;fitnessCenterException&quot;: &quot;A String&quot;, # Fitness center exception.
+    &quot;freeFitnessCenter&quot;: True or False, # Free fitness center. Guests may use the fitness center for free.
+    &quot;freeFitnessCenterException&quot;: &quot;A String&quot;, # Free fitness center exception.
+    &quot;freeWeights&quot;: True or False, # Free weights. Individual handheld fitness equipment of varied weights used for upper body strength training or bodybuilding. Also known as barbells, dumbbells, or kettlebells. Often stored on a rack with the weights arranged from light to heavy. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;freeWeightsException&quot;: &quot;A String&quot;, # Free weights exception.
+    &quot;massage&quot;: True or False, # Massage. A service provided by a trained massage therapist involving the physical manipulation of a guest&#x27;s muscles in order to achieve relaxation or pain relief.
+    &quot;massageException&quot;: &quot;A String&quot;, # Massage exception.
+    &quot;salon&quot;: True or False, # Salon. A room at the hotel where professionals provide hair styling services such as shampooing, blow drying, hair dos, hair cutting and hair coloring. Also known as hairdresser or beauty salon.
+    &quot;salonException&quot;: &quot;A String&quot;, # Salon exception.
+    &quot;sauna&quot;: True or False, # Sauna. A wood-paneled room heated to a high temperature where guests sit on built-in wood benches for the purpose of perspiring and relaxing their muscles. Can be dry or slightly wet heat. Not a steam room.
+    &quot;saunaException&quot;: &quot;A String&quot;, # Sauna exception.
+    &quot;spa&quot;: True or False, # Spa. A designated area, room or building at the hotel offering health and beauty treatment through such means as steam baths, exercise equipment, and massage. May also offer facials, nail care, and hair care. Services are usually available by appointment and for an additional fee. Does not apply if hotel only offers a steam room; must offer other beauty and/or health treatments as well.
+    &quot;spaException&quot;: &quot;A String&quot;, # Spa exception.
+    &quot;treadmill&quot;: True or False, # Treadmill. An electric stationary fitness machine that simulates a moving path to promote walking or running within a range of user-controlled speeds and inclines. Also known as running machine. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;treadmillException&quot;: &quot;A String&quot;, # Treadmill exception.
+    &quot;weightMachine&quot;: True or False, # Weight machine. Non-electronic fitness equipment designed for the user to target the exertion of different muscles. Usually incorporates a padded seat, a stack of flat weights and various bars and pulleys. May be designed for toning a specific part of the body or may involve different user-controlled settings, hardware and pulleys so as to provide an overall workout in one machine. Commonly found in a gym, fitness center, fitness room, or health club.
+    &quot;weightMachineException&quot;: &quot;A String&quot;, # Weight machine exception.
+  },
+}
+
+  updateMask: string, Required. The specific fields to update. Use &quot;*&quot; to update all fields, which may include unsetting empty fields in the request. Repeated field items cannot be individually updated.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Lodging of a location that provides accomodations.
+  &quot;accessibility&quot;: { # Physical adaptations made to the property in consideration of varying levels of human physical ability. # Physical adaptations made to the property in consideration of varying levels of human physical ability.
+    &quot;mobilityAccessible&quot;: True or False, # Mobility accessible. Throughout the property there are physical adaptations to ease the stay of a person in a wheelchair, such as auto-opening doors, wide elevators, wide bathrooms or ramps.
+    &quot;mobilityAccessibleElevator&quot;: True or False, # Mobility accessible elevator. A lift that transports people from one level to another and is built to accommodate a wheelchair-using passenger owing to the width of its doors and placement of call buttons.
+    &quot;mobilityAccessibleElevatorException&quot;: &quot;A String&quot;, # Mobility accessible elevator exception.
+    &quot;mobilityAccessibleException&quot;: &quot;A String&quot;, # Mobility accessible exception.
+    &quot;mobilityAccessibleParking&quot;: True or False, # Mobility accessible parking. The presence of a marked, designated area of prescribed size in which only registered, labeled vehicles transporting a person with physical challenges may park.
+    &quot;mobilityAccessibleParkingException&quot;: &quot;A String&quot;, # Mobility accessible parking exception.
+    &quot;mobilityAccessiblePool&quot;: True or False, # Mobility accessible pool. A swimming pool equipped with a mechanical chair that can be lowered and raised for the purpose of moving physically challenged guests into and out of the pool. May be powered by electricity or water. Also known as pool lift.
+    &quot;mobilityAccessiblePoolException&quot;: &quot;A String&quot;, # Mobility accessible pool exception.
+  },
+  &quot;activities&quot;: { # Amenities and features related to leisure and play. # Amenities and features related to leisure and play.
+    &quot;beachAccess&quot;: True or False, # Beach access. The hotel property is in close proximity to a beach and offers a way to get to that beach. This can include a route to the beach such as stairs down if hotel is on a bluff, or a short trail. Not the same as beachfront (with beach access, the hotel&#x27;s proximity is close to but not right on the beach).
+    &quot;beachAccessException&quot;: &quot;A String&quot;, # Beach access exception.
+    &quot;beachFront&quot;: True or False, # Breach front. The hotel property is physically located on the beach alongside an ocean, sea, gulf, or bay. It is not on a lake, river, stream, or pond. The hotel is not separated from the beach by a public road allowing vehicular, pedestrian, or bicycle traffic.
+    &quot;beachFrontException&quot;: &quot;A String&quot;, # Beach front exception.
+    &quot;bicycleRental&quot;: True or False, # Bicycle rental. The hotel owns bicycles that it permits guests to borrow and use. Can be free or for a fee.
+    &quot;bicycleRentalException&quot;: &quot;A String&quot;, # Bicycle rental exception.
+    &quot;boutiqueStores&quot;: True or False, # Boutique stores. There are stores selling clothing, jewelry, art and decor either on hotel premises or very close by. Does not refer to the hotel gift shop or convenience store.
+    &quot;boutiqueStoresException&quot;: &quot;A String&quot;, # Boutique stores exception.
+    &quot;casino&quot;: True or False, # Casino. A space designated for gambling and gaming featuring croupier-run table and card games, as well as electronic slot machines. May be on hotel premises or located nearby.
+    &quot;casinoException&quot;: &quot;A String&quot;, # Casino exception.
+    &quot;freeBicycleRental&quot;: True or False, # Free bicycle rental. The hotel owns bicycles that it permits guests to borrow and use for free.
+    &quot;freeBicycleRentalException&quot;: &quot;A String&quot;, # Free bicycle rental exception.
+    &quot;freeWatercraftRental&quot;: True or False, # Free watercraft rental. The hotel owns watercraft that it permits guests to borrow and use for free.
+    &quot;freeWatercraftRentalException&quot;: &quot;A String&quot;, # Free Watercraft rental exception.
+    &quot;gameRoom&quot;: True or False, # Game room. There is a room at the hotel containing electronic machines for play such as pinball, prize machines, driving simulators, and other items commonly found at a family fun center or arcade. May also include non-electronic games like pool, foosball, darts, and more. May or may not be designed for children. Also known as arcade, fun room, or family fun center.
+    &quot;gameRoomException&quot;: &quot;A String&quot;, # Game room exception.
+    &quot;golf&quot;: True or False, # Golf. There is a golf course on hotel grounds or there is a nearby, independently run golf course that allows use by hotel guests. Can be free or for a fee.
+    &quot;golfException&quot;: &quot;A String&quot;, # Golf exception.
+    &quot;horsebackRiding&quot;: True or False, # Horseback riding. The hotel has a horse barn onsite or an affiliation with a nearby barn to allow for guests to sit astride a horse and direct it to walk, trot, cantor, gallop and/or jump. Can be in a riding ring, on designated paths, or in the wilderness. May or may not involve instruction.
+    &quot;horsebackRidingException&quot;: &quot;A String&quot;, # Horseback riding exception.
+    &quot;nightclub&quot;: True or False, # Nightclub. There is a room at the hotel with a bar, a dance floor, and seating where designated staffers play dance music. There may also be a designated area for the performance of live music, singing and comedy acts.
+    &quot;nightclubException&quot;: &quot;A String&quot;, # Nightclub exception.
+    &quot;privateBeach&quot;: True or False, # Private beach. The beach which is in close proximity to the hotel is open only to guests.
+    &quot;privateBeachException&quot;: &quot;A String&quot;, # Private beach exception.
+    &quot;scuba&quot;: True or False, # Scuba. The provision for guests to dive under naturally occurring water fitted with a self-contained underwater breathing apparatus (SCUBA) for the purpose of exploring underwater life. Apparatus consists of a tank providing oxygen to the diver through a mask. Requires certification of the diver and supervision. The hotel may have the activity at its own waterfront or have an affiliation with a nearby facility. Required equipment is most often supplied to guests. Can be free or for a fee. Not snorkeling. Not done in a swimming pool.
+    &quot;scubaException&quot;: &quot;A String&quot;, # Scuba exception.
+    &quot;snorkeling&quot;: True or False, # Snorkeling. The provision for guests to participate in a recreational water activity in which swimmers wear a diving mask, a simple, shaped breathing tube and flippers/swim fins for the purpose of exploring below the surface of an ocean, gulf or lake. Does not usually require user certification or professional supervision. Equipment may or may not be available for rent or purchase. Not scuba diving.
+    &quot;snorkelingException&quot;: &quot;A String&quot;, # Snorkeling exception.
+    &quot;tennis&quot;: True or False, # Tennis. The hotel has the requisite court(s) on site or has an affiliation with a nearby facility for the purpose of providing guests with the opportunity to play a two-sided court-based game in which players use a stringed racquet to hit a ball across a net to the side of the opposing player. The court can be indoors or outdoors. Instructors, racquets and balls may or may not be provided.
+    &quot;tennisException&quot;: &quot;A String&quot;, # Tennis exception.
+    &quot;waterSkiing&quot;: True or False, # Water skiing. The provision of giving guests the opportunity to be pulled across naturally occurring water while standing on skis and holding a tow rope attached to a motorboat. Can occur on hotel premises or at a nearby waterfront. Most often performed in a lake or ocean.
+    &quot;waterSkiingException&quot;: &quot;A String&quot;, # Water skiing exception.
+    &quot;watercraftRental&quot;: True or False, # Watercraft rental. The hotel owns water vessels that it permits guests to borrow and use. Can be free or for a fee. Watercraft may include boats, pedal boats, rowboats, sailboats, powerboats, canoes, kayaks, or personal watercraft (such as a Jet Ski).
+    &quot;watercraftRentalException&quot;: &quot;A String&quot;, # Watercraft rental exception.
+  },
+  &quot;allUnits&quot;: { # Features and available amenities in the guest unit. # Output only. All units on the property have at least these attributes.
+    &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+    &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+    &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+    &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+    &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+    &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+    &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+    &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+    &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+    &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+    &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+    &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+    &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+    &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+    &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+    &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+    &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+    &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+    &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+      &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+      &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+      &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+      &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+      &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+      &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+      &quot;lakeView&quot;: True or False, # Lake view.
+      &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+      &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+      &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+      &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+      &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+      &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+      &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+      &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+      &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+    },
+  },
+  &quot;business&quot;: { # Features of the property of specific interest to the business traveler. # Features of the property of specific interest to the business traveler.
+    &quot;businessCenter&quot;: True or False, # Business center. A designated room at the hotel with one or more desks and equipped with guest-use computers, printers, fax machines and/or photocopiers. May or may not be open 24/7. May or may not require a key to access. Not a meeting room or conference room.
+    &quot;businessCenterException&quot;: &quot;A String&quot;, # Business center exception.
+    &quot;meetingRooms&quot;: True or False, # Meeting rooms. Rooms at the hotel designated for business-related gatherings. Rooms are usually equipped with tables or desks, office chairs and audio/visual facilities to allow for presentations and conference calls. Also known as conference rooms.
+    &quot;meetingRoomsCount&quot;: 42, # Meeting rooms count. The number of meeting rooms at the property.
+    &quot;meetingRoomsCountException&quot;: &quot;A String&quot;, # Meeting rooms count exception.
+    &quot;meetingRoomsException&quot;: &quot;A String&quot;, # Meeting rooms exception.
+  },
+  &quot;commonLivingArea&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features of the shared living areas available in this Lodging.
+    &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+      &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+      &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+      &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+      &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+      &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+      &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+      &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+      &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+      &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+      &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+      &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+      &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+      &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+      &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+      &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+      &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+    },
+    &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+      &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+      &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+      &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+      &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+      &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+      &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+      &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+      &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+      &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+      &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+      &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+      &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+      &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+      &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+      &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+      &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+      &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+      &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+      &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+      &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+      &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+      &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+      &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+      &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+      &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+      &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+      &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+      &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+      &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+      &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+      &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+      &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+    },
+    &quot;features&quot;: { # Features in the living area. # Features in the living area.
+      &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+      &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+      &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+      &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+      &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+      &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+      &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+      &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+      &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+      &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+      &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+      &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+      &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+      &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+      &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+      &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+      &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+      &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+      &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+      &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+      &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+      &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+      &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+      &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+      &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+      &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+      &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+      &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+      &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+      &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+      &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+      &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+      &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+      &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+      &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+      &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+      &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+      &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+      &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+      &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+    },
+    &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+      &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+      &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+      &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+      &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+      &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+      &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+      &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+      &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+      &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+      &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+      &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+      &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+    },
+    &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+      &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+      &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+      &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+      &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+      &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+      &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+      &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+      &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+      &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+      &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+      &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+      &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+      &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+      &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+      &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+      &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+      &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+      &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+      &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+      &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+      &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+      &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+      &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+      &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+      &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+      &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+      &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+      &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+    },
+  },
+  &quot;connectivity&quot;: { # The ways in which the property provides guests with the ability to access the internet. # The ways in which the property provides guests with the ability to access the internet.
+    &quot;freeWifi&quot;: True or False, # Free wifi. The hotel offers guests wifi for free.
+    &quot;freeWifiException&quot;: &quot;A String&quot;, # Free wifi exception.
+    &quot;publicAreaWifiAvailable&quot;: True or False, # Public area wifi available. Guests have the ability to wirelessly connect to the internet in the areas of the hotel accessible to anyone. Can be free or for a fee.
+    &quot;publicAreaWifiAvailableException&quot;: &quot;A String&quot;, # Public area wifi available exception.
+    &quot;publicInternetTerminal&quot;: True or False, # Public internet terminal. An area of the hotel supplied with computers and designated for the purpose of providing guests with the ability to access the internet.
+    &quot;publicInternetTerminalException&quot;: &quot;A String&quot;, # Public internet terminal exception.
+    &quot;wifiAvailable&quot;: True or False, # Wifi available. The hotel provides the ability for guests to wirelessly connect to the internet. Can be in the public areas of the hotel and/or in the guest rooms. Can be free or for a fee.
+    &quot;wifiAvailableException&quot;: &quot;A String&quot;, # Wifi available exception.
+  },
+  &quot;families&quot;: { # Services and amenities for families and young guests. # Services and amenities for families and young guests.
+    &quot;babysitting&quot;: True or False, # Babysitting. Child care that is offered by hotel staffers or coordinated by hotel staffers with local child care professionals. Can be free or for a fee.
+    &quot;babysittingException&quot;: &quot;A String&quot;, # Babysitting exception.
+    &quot;kidsActivities&quot;: True or False, # Kids activities. Recreational options such as sports, films, crafts and games designed for the enjoyment of children and offered at the hotel. May or may not be supervised. May or may not be at a designated time or place. Cab be free or for a fee.
+    &quot;kidsActivitiesException&quot;: &quot;A String&quot;, # Kids activities exception.
+    &quot;kidsClub&quot;: True or False, # Kids club. An organized program of group activities held at the hotel and designed for the enjoyment of children. Facilitated by hotel staff (or staff procured by the hotel) in an area(s) designated for the purpose of entertaining children without their parents. May include games, outings, water sports, team sports, arts and crafts, and films. Usually has set hours. Can be free or for a fee. Also known as Kids Camp or Kids program.
+    &quot;kidsClubException&quot;: &quot;A String&quot;, # Kids club exception.
+  },
+  &quot;foodAndDrink&quot;: { # Meals, snacks, and beverages available at the property. # Meals, snacks, and beverages available at the property.
+    &quot;bar&quot;: True or False, # Bar. A designated room, lounge or area of an on-site restaurant with seating at a counter behind which a hotel staffer takes the guest&#x27;s order and provides the requested alcoholic drink. Can be indoors or outdoors. Also known as Pub.
+    &quot;barException&quot;: &quot;A String&quot;, # Bar exception.
+    &quot;breakfastAvailable&quot;: True or False, # Breakfast available. The morning meal is offered to all guests. Can be free or for a fee.
+    &quot;breakfastAvailableException&quot;: &quot;A String&quot;, # Breakfast available exception.
+    &quot;breakfastBuffet&quot;: True or False, # Breakfast buffet. Breakfast meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+    &quot;breakfastBuffetException&quot;: &quot;A String&quot;, # Breakfast buffet exception.
+    &quot;buffet&quot;: True or False, # Buffet. A type of meal where guests serve themselves from a variety of dishes/foods that are put out on a table. Includes lunch and/or dinner meals. A breakfast-only buffet is not sufficient.
+    &quot;buffetException&quot;: &quot;A String&quot;, # Buffet exception.
+    &quot;dinnerBuffet&quot;: True or False, # Dinner buffet. Dinner meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+    &quot;dinnerBuffetException&quot;: &quot;A String&quot;, # Dinner buffet exception.
+    &quot;freeBreakfast&quot;: True or False, # Free breakfast. Breakfast is offered for free to all guests. Does not apply if limited to certain room packages.
+    &quot;freeBreakfastException&quot;: &quot;A String&quot;, # Free breakfast exception.
+    &quot;restaurant&quot;: True or False, # Restaurant. A business onsite at the hotel that is open to the public as well as guests, and offers meals and beverages to consume at tables or counters. May or may not include table service. Also known as cafe, buffet, eatery. A &quot;breakfast room&quot; where the hotel serves breakfast only to guests (not the general public) does not count as a restaurant.
+    &quot;restaurantException&quot;: &quot;A String&quot;, # Restaurant exception.
+    &quot;restaurantsCount&quot;: 42, # Restaurants count. The number of restaurants at the hotel.
+    &quot;restaurantsCountException&quot;: &quot;A String&quot;, # Restaurants count exception.
+    &quot;roomService&quot;: True or False, # Room service. A hotel staffer delivers meals prepared onsite to a guest&#x27;s room as per their request. May or may not be available during specific hours. Services should be available to all guests (not based on rate/room booked/reward program, etc).
+    &quot;roomServiceException&quot;: &quot;A String&quot;, # Room service exception.
+    &quot;tableService&quot;: True or False, # Table service. A restaurant in which a staff member is assigned to a guest&#x27;s table to take their order, deliver and clear away food, and deliver the bill, if applicable. Also known as sit-down restaurant.
+    &quot;tableServiceException&quot;: &quot;A String&quot;, # Table service exception.
+    &quot;twentyFourHourRoomService&quot;: True or False, # 24hr room service. Room service is available 24 hours a day.
+    &quot;twentyFourHourRoomServiceException&quot;: &quot;A String&quot;, # 24hr room service exception.
+    &quot;vendingMachine&quot;: True or False, # Vending machine. A glass-fronted mechanized cabinet displaying and dispensing snacks and beverages for purchase by coins, paper money and/or credit cards.
+    &quot;vendingMachineException&quot;: &quot;A String&quot;, # Vending machine exception.
+  },
+  &quot;guestUnits&quot;: [ # Individual GuestUnitTypes that are available in this Lodging.
+    { # A specific type of unit primarily defined by its features.
+      &quot;codes&quot;: [ # Required. Unit or room code identifiers for a single GuestUnitType. Each code must be unique within a Lodging instance.
+        &quot;A String&quot;,
+      ],
+      &quot;features&quot;: { # Features and available amenities in the guest unit. # Features and available amenities of the GuestUnitType.
+        &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+        &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+        &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+        &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+        &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+        &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+        &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+        &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+        &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+        &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+        &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+        &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+        &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+        &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+        &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+        &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+        &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+        &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+        &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+          &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+            &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+            &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+            &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+            &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+            &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+            &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+            &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+            &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+            &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+            &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+            &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+            &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+            &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+            &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+            &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+            &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+          },
+          &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+            &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+            &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+            &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+            &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+            &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+            &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+            &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+            &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+            &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+            &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+            &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+            &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+            &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+            &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+            &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+            &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+            &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+            &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+            &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+            &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+            &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+            &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+            &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+            &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+            &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+            &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+            &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+            &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+            &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+            &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+            &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+            &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+          },
+          &quot;features&quot;: { # Features in the living area. # Features in the living area.
+            &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+            &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+            &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+            &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+            &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+            &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+            &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+            &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+            &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+            &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+            &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+            &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+            &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+            &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+            &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+            &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+            &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+            &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+            &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+            &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+            &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+            &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+            &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+            &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+            &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+            &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+            &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+            &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+            &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+            &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+            &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+            &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+            &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+            &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+            &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+            &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+            &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+            &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+            &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+            &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+          },
+          &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+            &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+            &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+            &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+            &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+            &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+            &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+            &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+            &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+            &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+            &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+            &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+            &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+          },
+          &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+            &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+            &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+            &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+            &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+            &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+            &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+            &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+            &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+            &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+            &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+            &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+            &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+            &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+            &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+            &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+            &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+            &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+            &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+            &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+            &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+            &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+            &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+            &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+            &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+            &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+            &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+            &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+            &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+          },
+        },
+        &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+          &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+          &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+          &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+          &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+          &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+          &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+          &quot;lakeView&quot;: True or False, # Lake view.
+          &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+          &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+          &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+          &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+          &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+          &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+          &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+          &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+          &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+        },
+      },
+      &quot;label&quot;: &quot;A String&quot;, # Required. Short, English label or name of the GuestUnitType. Target &lt;50 chars.
+    },
+  ],
+  &quot;healthAndSafety&quot;: { # Health and safety measures implemented by the hotel during COVID-19. # Health and safety measures implemented by the hotel during COVID-19.
+    &quot;enhancedCleaning&quot;: { # Enhanced cleaning measures implemented by the hotel during COVID-19. # Enhanced cleaning measures implemented by the hotel during COVID-19.
+      &quot;commercialGradeDisinfectantCleaning&quot;: True or False, # Commercial-grade disinfectant used to clean the property.
+      &quot;commercialGradeDisinfectantCleaningException&quot;: &quot;A String&quot;, # Commercial grade disinfectant cleaning exception.
+      &quot;commonAreasEnhancedCleaning&quot;: True or False, # Enhanced cleaning of common areas.
+      &quot;commonAreasEnhancedCleaningException&quot;: &quot;A String&quot;, # Common areas enhanced cleaning exception.
+      &quot;employeesTrainedCleaningProcedures&quot;: True or False, # Employees trained in COVID-19 cleaning procedures.
+      &quot;employeesTrainedCleaningProceduresException&quot;: &quot;A String&quot;, # Employees trained cleaning procedures exception.
+      &quot;employeesTrainedThoroughHandWashing&quot;: True or False, # Employees trained in thorough hand-washing.
+      &quot;employeesTrainedThoroughHandWashingException&quot;: &quot;A String&quot;, # Employees trained thorough hand washing exception.
+      &quot;employeesWearProtectiveEquipment&quot;: True or False, # Employees wear masks, face shields, and/or gloves.
+      &quot;employeesWearProtectiveEquipmentException&quot;: &quot;A String&quot;, # Employees wear protective equipment exception.
+      &quot;guestRoomsEnhancedCleaning&quot;: True or False, # Enhanced cleaning of guest rooms.
+      &quot;guestRoomsEnhancedCleaningException&quot;: &quot;A String&quot;, # Guest rooms enhanced cleaning exception.
+    },
+    &quot;increasedFoodSafety&quot;: { # Increased food safety measures implemented by the hotel during COVID-19. # Increased food safety measures implemented by the hotel during COVID-19.
+      &quot;diningAreasAdditionalSanitation&quot;: True or False, # Additional sanitation in dining areas.
+      &quot;diningAreasAdditionalSanitationException&quot;: &quot;A String&quot;, # Dining areas additional sanitation exception.
+      &quot;disposableFlatware&quot;: True or False, # Disposable flatware.
+      &quot;disposableFlatwareException&quot;: &quot;A String&quot;, # Disposable flatware exception.
+      &quot;foodPreparationAndServingAdditionalSafety&quot;: True or False, # Additional safety measures during food prep and serving.
+      &quot;foodPreparationAndServingAdditionalSafetyException&quot;: &quot;A String&quot;, # Food preparation and serving additional safety exception.
+      &quot;individualPackagedMeals&quot;: True or False, # Individually-packaged meals.
+      &quot;individualPackagedMealsException&quot;: &quot;A String&quot;, # Individual packaged meals exception.
+      &quot;singleUseFoodMenus&quot;: True or False, # Single-use menus.
+      &quot;singleUseFoodMenusException&quot;: &quot;A String&quot;, # Single use food menus exception.
+    },
+    &quot;minimizedContact&quot;: { # Minimized contact measures implemented by the hotel during COVID-19. # Minimized contact measures implemented by the hotel during COVID-19.
+      &quot;contactlessCheckinCheckout&quot;: True or False, # No-contact check-in and check-out.
+      &quot;contactlessCheckinCheckoutException&quot;: &quot;A String&quot;, # Contactless check-in check-out exception.
+      &quot;digitalGuestRoomKeys&quot;: True or False, # Keyless mobile entry to guest rooms.
+      &quot;digitalGuestRoomKeysException&quot;: &quot;A String&quot;, # Digital guest room keys exception.
+      &quot;housekeepingScheduledRequestOnly&quot;: True or False, # Housekeeping scheduled by request only.
+      &quot;housekeepingScheduledRequestOnlyException&quot;: &quot;A String&quot;, # Housekeeping scheduled request only exception.
+      &quot;noHighTouchItemsCommonAreas&quot;: True or False, # High-touch items, such as magazines, removed from common areas.
+      &quot;noHighTouchItemsCommonAreasException&quot;: &quot;A String&quot;, # No high touch items common areas exception.
+      &quot;noHighTouchItemsGuestRooms&quot;: True or False, # High-touch items, such as decorative pillows, removed from guest rooms.
+      &quot;noHighTouchItemsGuestRoomsException&quot;: &quot;A String&quot;, # No high touch items guest rooms exception.
+      &quot;plasticKeycardsDisinfected&quot;: True or False, # Plastic key cards are disinfected or discarded.
+      &quot;plasticKeycardsDisinfectedException&quot;: &quot;A String&quot;, # Plastic keycards disinfected exception.
+      &quot;roomBookingsBuffer&quot;: True or False, # Buffer maintained between room bookings.
+      &quot;roomBookingsBufferException&quot;: &quot;A String&quot;, # Room bookings buffer exception.
+    },
+    &quot;personalProtection&quot;: { # Personal protection measures implemented by the hotel during COVID-19. # Personal protection measures implemented by the hotel during COVID-19.
+      &quot;commonAreasOfferSanitizingItems&quot;: True or False, # Hand-sanitizer and/or sanitizing wipes are offered in common areas.
+      &quot;commonAreasOfferSanitizingItemsException&quot;: &quot;A String&quot;, # Common areas offer sanitizing items exception.
+      &quot;faceMaskRequired&quot;: True or False, # Masks required on the property.
+      &quot;faceMaskRequiredException&quot;: &quot;A String&quot;, # Face mask required exception.
+      &quot;guestRoomHygieneKitsAvailable&quot;: True or False, # In-room hygiene kits with masks, hand sanitizer, and/or antibacterial wipes.
+      &quot;guestRoomHygieneKitsAvailableException&quot;: &quot;A String&quot;, # Guest room hygiene kits available exception.
+      &quot;protectiveEquipmentAvailable&quot;: True or False, # Masks and/or gloves available for guests.
+      &quot;protectiveEquipmentAvailableException&quot;: &quot;A String&quot;, # Protective equipment available exception.
+    },
+    &quot;physicalDistancing&quot;: { # Physical distancing measures implemented by the hotel during COVID-19. # Physical distancing measures implemented by the hotel during COVID-19.
+      &quot;commonAreasPhysicalDistancingArranged&quot;: True or False, # Common areas arranged to maintain physical distancing.
+      &quot;commonAreasPhysicalDistancingArrangedException&quot;: &quot;A String&quot;, # Common areas physical distancing arranged exception.
+      &quot;physicalDistancingRequired&quot;: True or False, # Physical distancing required.
+      &quot;physicalDistancingRequiredException&quot;: &quot;A String&quot;, # Physical distancing required exception.
+      &quot;safetyDividers&quot;: True or False, # Safety dividers at front desk and other locations.
+      &quot;safetyDividersException&quot;: &quot;A String&quot;, # Safety dividers exception.
+      &quot;sharedAreasLimitedOccupancy&quot;: True or False, # Guest occupancy limited within shared facilities.
+      &quot;sharedAreasLimitedOccupancyException&quot;: &quot;A String&quot;, # Shared areas limited occupancy exception.
+      &quot;wellnessAreasHavePrivateSpaces&quot;: True or False, # Private spaces designated in spa and wellness areas.
+      &quot;wellnessAreasHavePrivateSpacesException&quot;: &quot;A String&quot;, # Wellness areas have private spaces exception.
+    },
+  },
+  &quot;housekeeping&quot;: { # Conveniences provided in guest units to facilitate an easier, more comfortable stay. # Conveniences provided in guest units to facilitate an easier, more comfortable stay.
+    &quot;dailyHousekeeping&quot;: True or False, # Daily housekeeping. Guest units are cleaned by hotel staff daily during guest&#x27;s stay.
+    &quot;dailyHousekeepingException&quot;: &quot;A String&quot;, # Daily housekeeping exception.
+    &quot;housekeepingAvailable&quot;: True or False, # Housekeeping available. Guest units are cleaned by hotel staff during guest&#x27;s stay. Schedule may vary from daily, weekly, or specific days of the week.
+    &quot;housekeepingAvailableException&quot;: &quot;A String&quot;, # Housekeeping available exception.
+    &quot;turndownService&quot;: True or False, # Turndown service. Hotel staff enters guest units to prepare the bed for sleep use. May or may not include some light housekeeping. May or may not include an evening snack or candy. Also known as evening service.
+    &quot;turndownServiceException&quot;: &quot;A String&quot;, # Turndown service exception.
+  },
+  &quot;metadata&quot;: { # Metadata for the Lodging. # Required. Metadata for the lodging.
+    &quot;updateTime&quot;: &quot;A String&quot;, # Required. The latest time at which the Lodging data is asserted to be true in the real world. This is not necessarily the time at which the request is made.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Google identifier for this location in the form: `locations/{location_id}/lodging`
+  &quot;parking&quot;: { # Parking options at the property. # Parking options at the property.
+    &quot;electricCarChargingStations&quot;: True or False, # Electric car charging stations. Electric power stations, usually located outdoors, into which guests plug their electric cars to receive a charge.
+    &quot;electricCarChargingStationsException&quot;: &quot;A String&quot;, # Electric car charging stations exception.
+    &quot;freeParking&quot;: True or False, # Free parking. The hotel allows the cars of guests to be parked for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff. Free parking must be available to all guests (limited conditions does not apply).
+    &quot;freeParkingException&quot;: &quot;A String&quot;, # Free parking exception.
+    &quot;freeSelfParking&quot;: True or False, # Free self parking. Guests park their own cars for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply.
+    &quot;freeSelfParkingException&quot;: &quot;A String&quot;, # Free self parking exception.
+    &quot;freeValetParking&quot;: True or False, # Free valet parking. Hotel staff member parks the cars of guests. Parking with this service is free.
+    &quot;freeValetParkingException&quot;: &quot;A String&quot;, # Free valet parking exception.
+    &quot;parkingAvailable&quot;: True or False, # Parking available. The hotel allows the cars of guests to be parked. Can be free or for a fee. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff.
+    &quot;parkingAvailableException&quot;: &quot;A String&quot;, # Parking available exception.
+    &quot;selfParkingAvailable&quot;: True or False, # Self parking available. Guests park their own cars. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Can be free or for a fee.
+    &quot;selfParkingAvailableException&quot;: &quot;A String&quot;, # Self parking available exception.
+    &quot;valetParkingAvailable&quot;: True or False, # Valet parking available. Hotel staff member parks the cars of guests. Parking with this service can be free or for a fee.
+    &quot;valetParkingAvailableException&quot;: &quot;A String&quot;, # Valet parking available exception.
+  },
+  &quot;pets&quot;: { # Policies regarding guest-owned animals. # Policies regarding guest-owned animals.
+    &quot;catsAllowed&quot;: True or False, # Cats allowed. Domesticated felines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+    &quot;catsAllowedException&quot;: &quot;A String&quot;, # Cats allowed exception.
+    &quot;dogsAllowed&quot;: True or False, # Dogs allowed. Domesticated canines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+    &quot;dogsAllowedException&quot;: &quot;A String&quot;, # Dogs allowed exception.
+    &quot;petsAllowed&quot;: True or False, # Pets allowed. Household animals are allowed at the property and in the specific guest room of their owner. May or may not include dogs, cats, reptiles and/or fish. May or may not require a fee. Service animals are not considered to be pets, so not governed by this policy.
+    &quot;petsAllowedException&quot;: &quot;A String&quot;, # Pets allowed exception.
+    &quot;petsAllowedFree&quot;: True or False, # Pets allowed free. Household animals are allowed at the property and in the specific guest room of their owner for free. May or may not include dogs, cats, reptiles, and/or fish.
+    &quot;petsAllowedFreeException&quot;: &quot;A String&quot;, # Pets allowed free exception.
+  },
+  &quot;policies&quot;: { # Property rules that impact guests. # Property rules that impact guests.
+    &quot;allInclusiveAvailable&quot;: True or False, # All inclusive available. The hotel offers a rate option that includes the cost of the room, meals, activities, and other amenities that might otherwise be charged separately.
+    &quot;allInclusiveAvailableException&quot;: &quot;A String&quot;, # All inclusive available exception.
+    &quot;allInclusiveOnly&quot;: True or False, # All inclusive only. The only rate option offered by the hotel is a rate that includes the cost of the room, meals, activities and other amenities that might otherwise be charged separately.
+    &quot;allInclusiveOnlyException&quot;: &quot;A String&quot;, # All inclusive only exception.
+    &quot;checkinTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-in time. The time of the day at which the hotel begins providing guests access to their unit at the beginning of their stay.
+      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+    },
+    &quot;checkinTimeException&quot;: &quot;A String&quot;, # Check-in time exception.
+    &quot;checkoutTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-out time. The time of the day on the last day of a guest&#x27;s reserved stay at which the guest must vacate their room and settle their bill. Some hotels may offer late or early check out for a fee.
+      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+    },
+    &quot;checkoutTimeException&quot;: &quot;A String&quot;, # Check-out time exception.
+    &quot;kidsStayFree&quot;: True or False, # Kids stay free. The children of guests are allowed to stay in the room/suite of a parent or adult without an additional fee. The policy may or may not stipulate a limit of the child&#x27;s age or the overall number of children allowed.
+    &quot;kidsStayFreeException&quot;: &quot;A String&quot;, # Kids stay free exception.
+    &quot;maxChildAge&quot;: 42, # Max child age. The hotel allows children up to a certain age to stay in the room/suite of a parent or adult without an additional fee.
+    &quot;maxChildAgeException&quot;: &quot;A String&quot;, # Max child age exception.
+    &quot;maxKidsStayFreeCount&quot;: 42, # Max kids stay free count. The hotel allows a specific, defined number of children to stay in the room/suite of a parent or adult without an additional fee.
+    &quot;maxKidsStayFreeCountException&quot;: &quot;A String&quot;, # Max kids stay free count exception.
+    &quot;paymentOptions&quot;: { # Forms of payment accepted at the property. # Forms of payment accepted at the property.
+      &quot;cash&quot;: True or False, # Cash. The hotel accepts payment by paper/coin currency.
+      &quot;cashException&quot;: &quot;A String&quot;, # Cash exception.
+      &quot;cheque&quot;: True or False, # Cheque. The hotel accepts a printed document issued by the guest&#x27;s bank in the guest&#x27;s name as a form of payment.
+      &quot;chequeException&quot;: &quot;A String&quot;, # Cheque exception.
+      &quot;creditCard&quot;: True or False, # Credit card. The hotel accepts payment by a card issued by a bank or credit card company. Also known as charge card, debit card, bank card, or charge plate.
+      &quot;creditCardException&quot;: &quot;A String&quot;, # Credit card exception.
+      &quot;debitCard&quot;: True or False, # Debit card. The hotel accepts a bank-issued card that immediately deducts the charged funds from the guest&#x27;s bank account upon processing.
+      &quot;debitCardException&quot;: &quot;A String&quot;, # Debit card exception.
+      &quot;mobileNfc&quot;: True or False, # Mobile nfc. The hotel has the compatible computer hardware terminal that reads and charges a payment app on the guest&#x27;s smartphone without requiring the two devices to make physical contact. Also known as Apple Pay, Google Pay, Samsung Pay.
+      &quot;mobileNfcException&quot;: &quot;A String&quot;, # Mobile nfc exception.
+    },
+    &quot;smokeFreeProperty&quot;: True or False, # Smoke free property. Smoking is not allowed inside the building, on balconies, or in outside spaces. Hotels that offer a designated area for guests to smoke are not considered smoke-free properties.
+    &quot;smokeFreePropertyException&quot;: &quot;A String&quot;, # Smoke free property exception.
+  },
+  &quot;pools&quot;: { # Swimming pool or recreational water facilities available at the hotel. # Swimming pool or recreational water facilities available at the hotel.
+    &quot;adultPool&quot;: True or False, # Adult pool. A pool restricted for use by adults only. Can be indoors or outdoors.
+    &quot;adultPoolException&quot;: &quot;A String&quot;, # Adult pool exception.
+    &quot;hotTub&quot;: True or False, # Hot tub. A man-made pool containing bubbling water maintained at a higher temperature and circulated by aerating jets for the purpose of soaking, relaxation and hydrotherapy. Can be indoors or outdoors. Not used for active swimming. Also known as Jacuzzi. Hot tub must be in a common area where all guests can access it. Does not apply to room-specific hot tubs that are only accessible to guest occupying that room.
+    &quot;hotTubException&quot;: &quot;A String&quot;, # Hot tub exception.
+    &quot;indoorPool&quot;: True or False, # Indoor pool. A pool located inside the hotel and available for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+    &quot;indoorPoolException&quot;: &quot;A String&quot;, # Indoor pool exception.
+    &quot;indoorPoolsCount&quot;: 42, # Indoor pools count. The sum of all indoor pools at the hotel.
+    &quot;indoorPoolsCountException&quot;: &quot;A String&quot;, # Indoor pools count exception.
+    &quot;lazyRiver&quot;: True or False, # Lazy river. A man-made pool or several interconnected recreational pools built to mimic the shape and current of a winding river where guests float in the water on inflated rubber tubes. Can be indoors or outdoors.
+    &quot;lazyRiverException&quot;: &quot;A String&quot;, # Lazy river exception.
+    &quot;lifeguard&quot;: True or False, # Lifeguard. A trained member of the hotel staff stationed by the hotel&#x27;s indoor or outdoor swimming area and responsible for the safety of swimming guests.
+    &quot;lifeguardException&quot;: &quot;A String&quot;, # Lifeguard exception.
+    &quot;outdoorPool&quot;: True or False, # Outdoor pool. A pool located outside on the grounds of the hotel and available for guests to use for swimming, soaking or recreation. Use may or may not be restricted to adults and/or children.
+    &quot;outdoorPoolException&quot;: &quot;A String&quot;, # Outdoor pool exception.
+    &quot;outdoorPoolsCount&quot;: 42, # Outdoor pools count. The sum of all outdoor pools at the hotel.
+    &quot;outdoorPoolsCountException&quot;: &quot;A String&quot;, # Outdoor pools count exception.
+    &quot;pool&quot;: True or False, # Pool. The presence of a pool, either indoors or outdoors, for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+    &quot;poolException&quot;: &quot;A String&quot;, # Pool exception.
+    &quot;poolsCount&quot;: 42, # Pools count. The sum of all pools at the hotel.
+    &quot;poolsCountException&quot;: &quot;A String&quot;, # Pools count exception.
+    &quot;wadingPool&quot;: True or False, # Wading pool. A shallow pool designed for small children to play in. Can be indoors or outdoors. Also known as kiddie pool.
+    &quot;wadingPoolException&quot;: &quot;A String&quot;, # Wading pool exception.
+    &quot;waterPark&quot;: True or False, # Water park. An aquatic recreation area with a large pool or series of pools that has features such as a water slide or tube, wavepool, fountains, rope swings, and/or obstacle course. Can be indoors or outdoors. Also known as adventure pool.
+    &quot;waterParkException&quot;: &quot;A String&quot;, # Water park exception.
+    &quot;waterslide&quot;: True or False, # Waterslide. A continuously wetted chute positioned by an indoor or outdoor pool which people slide down into the water.
+    &quot;waterslideException&quot;: &quot;A String&quot;, # Waterslide exception.
+    &quot;wavePool&quot;: True or False, # Wave pool. A large indoor or outdoor pool with a machine that produces water currents to mimic the ocean&#x27;s crests.
+    &quot;wavePoolException&quot;: &quot;A String&quot;, # Wave pool exception.
+  },
+  &quot;property&quot;: { # General factual information about the property&#x27;s physical structure and important dates. # General factual information about the property&#x27;s physical structure and important dates.
+    &quot;builtYear&quot;: 42, # Built year. The year that construction of the property was completed.
+    &quot;builtYearException&quot;: &quot;A String&quot;, # Built year exception.
+    &quot;floorsCount&quot;: 42, # Floors count. The number of stories the building has from the ground floor to the top floor that are accessible to guests.
+    &quot;floorsCountException&quot;: &quot;A String&quot;, # Floors count exception.
+    &quot;lastRenovatedYear&quot;: 42, # Last renovated year. The year when the most recent renovation of the property was completed. Renovation may include all or any combination of the following: the units, the public spaces, the exterior, or the interior.
+    &quot;lastRenovatedYearException&quot;: &quot;A String&quot;, # Last renovated year exception.
+    &quot;roomsCount&quot;: 42, # Rooms count. The total number of rooms and suites bookable by guests for an overnight stay. Does not include event space, public spaces, conference rooms, fitness rooms, business centers, spa, salon, restaurants/bars, or shops.
+    &quot;roomsCountException&quot;: &quot;A String&quot;, # Rooms count exception.
+  },
+  &quot;services&quot;: { # Conveniences or help provided by the property to facilitate an easier, more comfortable stay. # Conveniences or help provided by the property to facilitate an easier, more comfortable stay.
+    &quot;baggageStorage&quot;: True or False, # Baggage storage. A provision for guests to leave their bags at the hotel when they arrive for their stay before the official check-in time. May or may not apply for guests who wish to leave their bags after check-out and before departing the locale. Also known as bag dropoff.
+    &quot;baggageStorageException&quot;: &quot;A String&quot;, # Baggage storage exception.
+    &quot;concierge&quot;: True or False, # Concierge. Hotel staff member(s) responsible for facilitating an easy, comfortable stay through making reservations for meals, sourcing theater tickets, arranging tours, finding a doctor, making recommendations, and answering questions.
+    &quot;conciergeException&quot;: &quot;A String&quot;, # Concierge exception.
+    &quot;convenienceStore&quot;: True or False, # Convenience store. A shop at the hotel primarily selling snacks, drinks, non-prescription medicines, health and beauty aids, magazines and newspapers.
+    &quot;convenienceStoreException&quot;: &quot;A String&quot;, # Convenience store exception.
+    &quot;currencyExchange&quot;: True or False, # Currency exchange. A staff member or automated machine tasked with the transaction of providing the native currency of the hotel&#x27;s locale in exchange for the foreign currency provided by a guest.
+    &quot;currencyExchangeException&quot;: &quot;A String&quot;, # Currency exchange exception.
+    &quot;elevator&quot;: True or False, # Elevator. A passenger elevator that transports guests from one story to another. Also known as lift.
+    &quot;elevatorException&quot;: &quot;A String&quot;, # Elevator exception.
+    &quot;frontDesk&quot;: True or False, # Front desk. A counter or desk in the lobby or the immediate interior of the hotel where a member of the staff greets guests and processes the information related to their stay (including check-in and check-out). May or may not be manned and open 24/7.
+    &quot;frontDeskException&quot;: &quot;A String&quot;, # Front desk exception.
+    &quot;fullServiceLaundry&quot;: True or False, # Full service laundry. Laundry and dry cleaning facilitated and handled by the hotel on behalf of the guest. Does not include the provision for guests to do their own laundry in on-site machines.
+    &quot;fullServiceLaundryException&quot;: &quot;A String&quot;, # Full service laundry exception.
+    &quot;giftShop&quot;: True or False, # Gift shop. An on-site store primarily selling souvenirs, mementos and other gift items. May or may not also sell sundries, magazines and newspapers, clothing, or snacks.
+    &quot;giftShopException&quot;: &quot;A String&quot;, # Gift shop exception.
+    &quot;languagesSpoken&quot;: [ # Languages spoken by at least one staff member.
+      { # Language spoken by at least one staff member.
+        &quot;languageCode&quot;: &quot;A String&quot;, # Required. The BCP-47 language code for the spoken language. Currently accepted codes: ar, de, en, es, fil, fr, hi, id, it, ja, ko, nl, pt, ru, vi, yue, zh.
+        &quot;spoken&quot;: True or False, # At least one member of the staff can speak the language.
+        &quot;spokenException&quot;: &quot;A String&quot;, # Spoken exception.
+      },
+    ],
+    &quot;selfServiceLaundry&quot;: True or False, # Self service laundry. On-site clothes washers and dryers accessible to guests for the purpose of washing and drying their own clothes. May or may not require payment to use the machines.
+    &quot;selfServiceLaundryException&quot;: &quot;A String&quot;, # Self service laundry exception.
+    &quot;socialHour&quot;: True or False, # Social hour. A reception with complimentary soft drinks, tea, coffee, wine and/or cocktails in the afternoon or evening. Can be hosted by hotel staff or guests may serve themselves. Also known as wine hour. The availability of coffee/tea in the lobby throughout the day does not constitute a social or wine hour.
+    &quot;socialHourException&quot;: &quot;A String&quot;, # Social hour exception.
+    &quot;twentyFourHourFrontDesk&quot;: True or False, # 24hr front desk. Front desk is staffed 24 hours a day.
+    &quot;twentyFourHourFrontDeskException&quot;: &quot;A String&quot;, # 24hr front desk exception.
+    &quot;wakeUpCalls&quot;: True or False, # Wake up calls. By direction of the guest, a hotel staff member will phone the guest unit at the requested hour. Also known as morning call.
+    &quot;wakeUpCallsException&quot;: &quot;A String&quot;, # Wake up calls exception.
+  },
+  &quot;someUnits&quot;: { # Features and available amenities in the guest unit. # Output only. Some units on the property have as much as these attributes.
+    &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+    &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+    &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+    &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+    &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+    &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+    &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+    &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+    &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+    &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+    &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+    &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+    &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+    &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+    &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+    &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+    &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+    &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+    &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+      &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+      &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+      &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+      &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+      &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+      &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+      &quot;lakeView&quot;: True or False, # Lake view.
+      &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+      &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+      &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+      &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+      &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+      &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+      &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+      &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+      &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+    },
+  },
+  &quot;transportation&quot;: { # Vehicles or vehicular services facilitated or owned by the property. # Vehicles or vehicular services facilitated or owned by the property.
+    &quot;airportShuttle&quot;: True or False, # Airport shuttle. The hotel provides guests with a chauffeured van or bus to and from the airport. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them. Applies if the hotel has a third-party shuttle service (office/desk etc.) within the hotel. As long as hotel provides this service, it doesn&#x27;t matter if it&#x27;s directly with them or a third party they work with. Does not apply if guest has to coordinate with an entity outside/other than the hotel.
+    &quot;airportShuttleException&quot;: &quot;A String&quot;, # Airport shuttle exception.
+    &quot;carRentalOnProperty&quot;: True or False, # Car rental on property. A branch of a rental car company with a processing desk in the hotel. Available cars for rent may be awaiting at the hotel or in a nearby lot.
+    &quot;carRentalOnPropertyException&quot;: &quot;A String&quot;, # Car rental on property exception.
+    &quot;freeAirportShuttle&quot;: True or False, # Free airport shuttle. Airport shuttle is free to guests. Must be free to all guests without any conditions.
+    &quot;freeAirportShuttleException&quot;: &quot;A String&quot;, # Free airport shuttle exception.
+    &quot;freePrivateCarService&quot;: True or False, # Free private car service. Private chauffeured car service is free to guests.
+    &quot;freePrivateCarServiceException&quot;: &quot;A String&quot;, # Free private car service exception.
+    &quot;localShuttle&quot;: True or False, # Local shuttle. A car, van or bus provided by the hotel to transport guests to destinations within a specified range of distance around the hotel. Usually shopping and/or convention centers, downtown districts, or beaches. Can be free or for a fee.
+    &quot;localShuttleException&quot;: &quot;A String&quot;, # Local shuttle exception.
+    &quot;privateCarService&quot;: True or False, # Private car service. Hotel provides a private chauffeured car to transport guests to destinations. Passengers in the car are either alone or are known to one another and have requested the car together. Service can be free or for a fee and travel distance is usually limited to a specific range. Not a taxi.
+    &quot;privateCarServiceException&quot;: &quot;A String&quot;, # Private car service exception.
+    &quot;transfer&quot;: True or False, # Transfer. Hotel provides a shuttle service or car service to take guests to and from the nearest airport or train station. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them.
+    &quot;transferException&quot;: &quot;A String&quot;, # Transfer exception.
+  },
+  &quot;wellness&quot;: { # Guest facilities at the property to promote or maintain health, beauty, and fitness. # Guest facilities at the property to promote or maintain health, beauty, and fitness.
+    &quot;doctorOnCall&quot;: True or False, # Doctor on call. The hotel has a contract with a medical professional who provides services to hotel guests should they fall ill during their stay. The doctor may or may not have an on-site office or be at the hotel at all times.
+    &quot;doctorOnCallException&quot;: &quot;A String&quot;, # Doctor on call exception.
+    &quot;ellipticalMachine&quot;: True or False, # Elliptical machine. An electric, stationary fitness machine with pedals that simulates climbing, walking or running and provides a user-controlled range of speeds and tensions. May not have arm-controlled levers to work out the upper body as well. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;ellipticalMachineException&quot;: &quot;A String&quot;, # Elliptical machine exception.
+    &quot;fitnessCenter&quot;: True or False, # Fitness center. A room or building at the hotel containing equipment to promote physical activity, such as treadmills, elliptical machines, stationary bikes, weight machines, free weights, and/or stretching mats. Use of the fitness center can be free or for a fee. May or may not be staffed. May or may not offer instructor-led classes in various styles of physical conditioning. May or may not be open 24/7. May or may not include locker rooms and showers. Also known as health club, gym, fitness room, health center.
+    &quot;fitnessCenterException&quot;: &quot;A String&quot;, # Fitness center exception.
+    &quot;freeFitnessCenter&quot;: True or False, # Free fitness center. Guests may use the fitness center for free.
+    &quot;freeFitnessCenterException&quot;: &quot;A String&quot;, # Free fitness center exception.
+    &quot;freeWeights&quot;: True or False, # Free weights. Individual handheld fitness equipment of varied weights used for upper body strength training or bodybuilding. Also known as barbells, dumbbells, or kettlebells. Often stored on a rack with the weights arranged from light to heavy. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;freeWeightsException&quot;: &quot;A String&quot;, # Free weights exception.
+    &quot;massage&quot;: True or False, # Massage. A service provided by a trained massage therapist involving the physical manipulation of a guest&#x27;s muscles in order to achieve relaxation or pain relief.
+    &quot;massageException&quot;: &quot;A String&quot;, # Massage exception.
+    &quot;salon&quot;: True or False, # Salon. A room at the hotel where professionals provide hair styling services such as shampooing, blow drying, hair dos, hair cutting and hair coloring. Also known as hairdresser or beauty salon.
+    &quot;salonException&quot;: &quot;A String&quot;, # Salon exception.
+    &quot;sauna&quot;: True or False, # Sauna. A wood-paneled room heated to a high temperature where guests sit on built-in wood benches for the purpose of perspiring and relaxing their muscles. Can be dry or slightly wet heat. Not a steam room.
+    &quot;saunaException&quot;: &quot;A String&quot;, # Sauna exception.
+    &quot;spa&quot;: True or False, # Spa. A designated area, room or building at the hotel offering health and beauty treatment through such means as steam baths, exercise equipment, and massage. May also offer facials, nail care, and hair care. Services are usually available by appointment and for an additional fee. Does not apply if hotel only offers a steam room; must offer other beauty and/or health treatments as well.
+    &quot;spaException&quot;: &quot;A String&quot;, # Spa exception.
+    &quot;treadmill&quot;: True or False, # Treadmill. An electric stationary fitness machine that simulates a moving path to promote walking or running within a range of user-controlled speeds and inclines. Also known as running machine. Commonly found in a gym, fitness room, health center, or health club.
+    &quot;treadmillException&quot;: &quot;A String&quot;, # Treadmill exception.
+    &quot;weightMachine&quot;: True or False, # Weight machine. Non-electronic fitness equipment designed for the user to target the exertion of different muscles. Usually incorporates a padded seat, a stack of flat weights and various bars and pulleys. May be designed for toning a specific part of the body or may involve different user-controlled settings, hardware and pulleys so as to provide an overall workout in one machine. Commonly found in a gym, fitness center, fitness room, or health club.
+    &quot;weightMachineException&quot;: &quot;A String&quot;, # Weight machine exception.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/mybusinesslodging_v1.locations.lodging.html b/docs/dyn/mybusinesslodging_v1.locations.lodging.html
new file mode 100644
index 0000000..803bcf4
--- /dev/null
+++ b/docs/dyn/mybusinesslodging_v1.locations.lodging.html
@@ -0,0 +1,1148 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="mybusinesslodging_v1.html">My Business Lodging API</a> . <a href="mybusinesslodging_v1.locations.html">locations</a> . <a href="mybusinesslodging_v1.locations.lodging.html">lodging</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getGoogleUpdated">getGoogleUpdated(name, readMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns the Google updated Lodging of a specific location.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getGoogleUpdated">getGoogleUpdated(name, readMask=None, x__xgafv=None)</code>
+  <pre>Returns the Google updated Lodging of a specific location.
+
+Args:
+  name: string, Required. Google identifier for this location in the form: `accounts/{account_id}/locations/{location_id}/lodging` (required)
+  readMask: string, Required. The specific fields to return. Use &quot;*&quot; to include all fields. Repeated field items cannot be individually specified.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for LodgingService.GetGoogleUpdatedLodging
+  &quot;diffMask&quot;: &quot;A String&quot;, # Required. The fields in the Lodging that have been updated by Google. Repeated field items are not individually specified.
+  &quot;lodging&quot;: { # Lodging of a location that provides accomodations. # Required. The Google updated Lodging.
+    &quot;accessibility&quot;: { # Physical adaptations made to the property in consideration of varying levels of human physical ability. # Physical adaptations made to the property in consideration of varying levels of human physical ability.
+      &quot;mobilityAccessible&quot;: True or False, # Mobility accessible. Throughout the property there are physical adaptations to ease the stay of a person in a wheelchair, such as auto-opening doors, wide elevators, wide bathrooms or ramps.
+      &quot;mobilityAccessibleElevator&quot;: True or False, # Mobility accessible elevator. A lift that transports people from one level to another and is built to accommodate a wheelchair-using passenger owing to the width of its doors and placement of call buttons.
+      &quot;mobilityAccessibleElevatorException&quot;: &quot;A String&quot;, # Mobility accessible elevator exception.
+      &quot;mobilityAccessibleException&quot;: &quot;A String&quot;, # Mobility accessible exception.
+      &quot;mobilityAccessibleParking&quot;: True or False, # Mobility accessible parking. The presence of a marked, designated area of prescribed size in which only registered, labeled vehicles transporting a person with physical challenges may park.
+      &quot;mobilityAccessibleParkingException&quot;: &quot;A String&quot;, # Mobility accessible parking exception.
+      &quot;mobilityAccessiblePool&quot;: True or False, # Mobility accessible pool. A swimming pool equipped with a mechanical chair that can be lowered and raised for the purpose of moving physically challenged guests into and out of the pool. May be powered by electricity or water. Also known as pool lift.
+      &quot;mobilityAccessiblePoolException&quot;: &quot;A String&quot;, # Mobility accessible pool exception.
+    },
+    &quot;activities&quot;: { # Amenities and features related to leisure and play. # Amenities and features related to leisure and play.
+      &quot;beachAccess&quot;: True or False, # Beach access. The hotel property is in close proximity to a beach and offers a way to get to that beach. This can include a route to the beach such as stairs down if hotel is on a bluff, or a short trail. Not the same as beachfront (with beach access, the hotel&#x27;s proximity is close to but not right on the beach).
+      &quot;beachAccessException&quot;: &quot;A String&quot;, # Beach access exception.
+      &quot;beachFront&quot;: True or False, # Breach front. The hotel property is physically located on the beach alongside an ocean, sea, gulf, or bay. It is not on a lake, river, stream, or pond. The hotel is not separated from the beach by a public road allowing vehicular, pedestrian, or bicycle traffic.
+      &quot;beachFrontException&quot;: &quot;A String&quot;, # Beach front exception.
+      &quot;bicycleRental&quot;: True or False, # Bicycle rental. The hotel owns bicycles that it permits guests to borrow and use. Can be free or for a fee.
+      &quot;bicycleRentalException&quot;: &quot;A String&quot;, # Bicycle rental exception.
+      &quot;boutiqueStores&quot;: True or False, # Boutique stores. There are stores selling clothing, jewelry, art and decor either on hotel premises or very close by. Does not refer to the hotel gift shop or convenience store.
+      &quot;boutiqueStoresException&quot;: &quot;A String&quot;, # Boutique stores exception.
+      &quot;casino&quot;: True or False, # Casino. A space designated for gambling and gaming featuring croupier-run table and card games, as well as electronic slot machines. May be on hotel premises or located nearby.
+      &quot;casinoException&quot;: &quot;A String&quot;, # Casino exception.
+      &quot;freeBicycleRental&quot;: True or False, # Free bicycle rental. The hotel owns bicycles that it permits guests to borrow and use for free.
+      &quot;freeBicycleRentalException&quot;: &quot;A String&quot;, # Free bicycle rental exception.
+      &quot;freeWatercraftRental&quot;: True or False, # Free watercraft rental. The hotel owns watercraft that it permits guests to borrow and use for free.
+      &quot;freeWatercraftRentalException&quot;: &quot;A String&quot;, # Free Watercraft rental exception.
+      &quot;gameRoom&quot;: True or False, # Game room. There is a room at the hotel containing electronic machines for play such as pinball, prize machines, driving simulators, and other items commonly found at a family fun center or arcade. May also include non-electronic games like pool, foosball, darts, and more. May or may not be designed for children. Also known as arcade, fun room, or family fun center.
+      &quot;gameRoomException&quot;: &quot;A String&quot;, # Game room exception.
+      &quot;golf&quot;: True or False, # Golf. There is a golf course on hotel grounds or there is a nearby, independently run golf course that allows use by hotel guests. Can be free or for a fee.
+      &quot;golfException&quot;: &quot;A String&quot;, # Golf exception.
+      &quot;horsebackRiding&quot;: True or False, # Horseback riding. The hotel has a horse barn onsite or an affiliation with a nearby barn to allow for guests to sit astride a horse and direct it to walk, trot, cantor, gallop and/or jump. Can be in a riding ring, on designated paths, or in the wilderness. May or may not involve instruction.
+      &quot;horsebackRidingException&quot;: &quot;A String&quot;, # Horseback riding exception.
+      &quot;nightclub&quot;: True or False, # Nightclub. There is a room at the hotel with a bar, a dance floor, and seating where designated staffers play dance music. There may also be a designated area for the performance of live music, singing and comedy acts.
+      &quot;nightclubException&quot;: &quot;A String&quot;, # Nightclub exception.
+      &quot;privateBeach&quot;: True or False, # Private beach. The beach which is in close proximity to the hotel is open only to guests.
+      &quot;privateBeachException&quot;: &quot;A String&quot;, # Private beach exception.
+      &quot;scuba&quot;: True or False, # Scuba. The provision for guests to dive under naturally occurring water fitted with a self-contained underwater breathing apparatus (SCUBA) for the purpose of exploring underwater life. Apparatus consists of a tank providing oxygen to the diver through a mask. Requires certification of the diver and supervision. The hotel may have the activity at its own waterfront or have an affiliation with a nearby facility. Required equipment is most often supplied to guests. Can be free or for a fee. Not snorkeling. Not done in a swimming pool.
+      &quot;scubaException&quot;: &quot;A String&quot;, # Scuba exception.
+      &quot;snorkeling&quot;: True or False, # Snorkeling. The provision for guests to participate in a recreational water activity in which swimmers wear a diving mask, a simple, shaped breathing tube and flippers/swim fins for the purpose of exploring below the surface of an ocean, gulf or lake. Does not usually require user certification or professional supervision. Equipment may or may not be available for rent or purchase. Not scuba diving.
+      &quot;snorkelingException&quot;: &quot;A String&quot;, # Snorkeling exception.
+      &quot;tennis&quot;: True or False, # Tennis. The hotel has the requisite court(s) on site or has an affiliation with a nearby facility for the purpose of providing guests with the opportunity to play a two-sided court-based game in which players use a stringed racquet to hit a ball across a net to the side of the opposing player. The court can be indoors or outdoors. Instructors, racquets and balls may or may not be provided.
+      &quot;tennisException&quot;: &quot;A String&quot;, # Tennis exception.
+      &quot;waterSkiing&quot;: True or False, # Water skiing. The provision of giving guests the opportunity to be pulled across naturally occurring water while standing on skis and holding a tow rope attached to a motorboat. Can occur on hotel premises or at a nearby waterfront. Most often performed in a lake or ocean.
+      &quot;waterSkiingException&quot;: &quot;A String&quot;, # Water skiing exception.
+      &quot;watercraftRental&quot;: True or False, # Watercraft rental. The hotel owns water vessels that it permits guests to borrow and use. Can be free or for a fee. Watercraft may include boats, pedal boats, rowboats, sailboats, powerboats, canoes, kayaks, or personal watercraft (such as a Jet Ski).
+      &quot;watercraftRentalException&quot;: &quot;A String&quot;, # Watercraft rental exception.
+    },
+    &quot;allUnits&quot;: { # Features and available amenities in the guest unit. # Output only. All units on the property have at least these attributes.
+      &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+      &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+      &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+      &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+      &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+      &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+      &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+      &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+      &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+      &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+      &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+      &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+      &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+      &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+      &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+      &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+      &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+      &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+      &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+        &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+          &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+          &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+          &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+          &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+          &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+          &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+          &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+          &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+          &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+          &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+          &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+          &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+          &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+          &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+          &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+          &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+        },
+        &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+          &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+          &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+          &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+          &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+          &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+          &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+          &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+          &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+          &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+          &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+          &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+          &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+          &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+          &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+          &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+          &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+          &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+          &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+          &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+          &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+          &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+          &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+          &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+          &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+          &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+          &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+          &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+          &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+          &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+          &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+          &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+          &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+        },
+        &quot;features&quot;: { # Features in the living area. # Features in the living area.
+          &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+          &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+          &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+          &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+          &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+          &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+          &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+          &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+          &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+          &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+          &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+          &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+          &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+          &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+          &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+          &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+          &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+          &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+          &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+          &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+          &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+          &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+          &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+          &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+          &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+          &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+          &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+          &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+          &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+          &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+          &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+          &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+          &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+          &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+          &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+          &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+          &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+          &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+          &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+          &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+        },
+        &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+          &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+          &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+          &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+          &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+          &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+          &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+          &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+          &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+          &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+          &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+          &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+          &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+        },
+        &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+          &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+          &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+          &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+          &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+          &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+          &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+          &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+          &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+          &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+          &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+          &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+          &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+          &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+          &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+          &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+          &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+          &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+          &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+          &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+          &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+          &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+          &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+          &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+          &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+          &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+          &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+          &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+          &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+        },
+      },
+      &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+        &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+        &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+        &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+        &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+        &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+        &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+        &quot;lakeView&quot;: True or False, # Lake view.
+        &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+        &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+        &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+        &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+        &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+        &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+        &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+        &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+        &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+      },
+    },
+    &quot;business&quot;: { # Features of the property of specific interest to the business traveler. # Features of the property of specific interest to the business traveler.
+      &quot;businessCenter&quot;: True or False, # Business center. A designated room at the hotel with one or more desks and equipped with guest-use computers, printers, fax machines and/or photocopiers. May or may not be open 24/7. May or may not require a key to access. Not a meeting room or conference room.
+      &quot;businessCenterException&quot;: &quot;A String&quot;, # Business center exception.
+      &quot;meetingRooms&quot;: True or False, # Meeting rooms. Rooms at the hotel designated for business-related gatherings. Rooms are usually equipped with tables or desks, office chairs and audio/visual facilities to allow for presentations and conference calls. Also known as conference rooms.
+      &quot;meetingRoomsCount&quot;: 42, # Meeting rooms count. The number of meeting rooms at the property.
+      &quot;meetingRoomsCountException&quot;: &quot;A String&quot;, # Meeting rooms count exception.
+      &quot;meetingRoomsException&quot;: &quot;A String&quot;, # Meeting rooms exception.
+    },
+    &quot;commonLivingArea&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features of the shared living areas available in this Lodging.
+      &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+        &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+        &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+        &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+        &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+        &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+        &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+        &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+        &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+        &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+        &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+        &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+        &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+        &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+        &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+        &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+      },
+      &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+        &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+        &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+        &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+        &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+        &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+        &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+        &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+        &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+        &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+        &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+        &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+        &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+        &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+        &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+        &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+        &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+        &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+        &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+        &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+        &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+        &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+        &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+        &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+        &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+        &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+        &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+        &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+        &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+        &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+        &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+        &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+        &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+      },
+      &quot;features&quot;: { # Features in the living area. # Features in the living area.
+        &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+        &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+        &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+        &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+        &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+        &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+        &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+        &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+        &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+        &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+        &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+        &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+        &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+        &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+        &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+        &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+        &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+        &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+        &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+        &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+        &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+        &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+        &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+        &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+        &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+        &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+        &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+        &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+        &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+        &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+        &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+        &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+        &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+        &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+        &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+        &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+        &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+        &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+        &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+      },
+      &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+        &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+        &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+        &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+        &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+        &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+        &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+        &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+        &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+        &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+        &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+        &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+        &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+      },
+      &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+        &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+        &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+        &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+        &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+        &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+        &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+        &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+        &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+        &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+        &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+        &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+        &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+        &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+        &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+        &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+        &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+        &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+        &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+        &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+        &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+        &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+        &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+        &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+        &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+        &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+        &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+        &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+        &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+      },
+    },
+    &quot;connectivity&quot;: { # The ways in which the property provides guests with the ability to access the internet. # The ways in which the property provides guests with the ability to access the internet.
+      &quot;freeWifi&quot;: True or False, # Free wifi. The hotel offers guests wifi for free.
+      &quot;freeWifiException&quot;: &quot;A String&quot;, # Free wifi exception.
+      &quot;publicAreaWifiAvailable&quot;: True or False, # Public area wifi available. Guests have the ability to wirelessly connect to the internet in the areas of the hotel accessible to anyone. Can be free or for a fee.
+      &quot;publicAreaWifiAvailableException&quot;: &quot;A String&quot;, # Public area wifi available exception.
+      &quot;publicInternetTerminal&quot;: True or False, # Public internet terminal. An area of the hotel supplied with computers and designated for the purpose of providing guests with the ability to access the internet.
+      &quot;publicInternetTerminalException&quot;: &quot;A String&quot;, # Public internet terminal exception.
+      &quot;wifiAvailable&quot;: True or False, # Wifi available. The hotel provides the ability for guests to wirelessly connect to the internet. Can be in the public areas of the hotel and/or in the guest rooms. Can be free or for a fee.
+      &quot;wifiAvailableException&quot;: &quot;A String&quot;, # Wifi available exception.
+    },
+    &quot;families&quot;: { # Services and amenities for families and young guests. # Services and amenities for families and young guests.
+      &quot;babysitting&quot;: True or False, # Babysitting. Child care that is offered by hotel staffers or coordinated by hotel staffers with local child care professionals. Can be free or for a fee.
+      &quot;babysittingException&quot;: &quot;A String&quot;, # Babysitting exception.
+      &quot;kidsActivities&quot;: True or False, # Kids activities. Recreational options such as sports, films, crafts and games designed for the enjoyment of children and offered at the hotel. May or may not be supervised. May or may not be at a designated time or place. Cab be free or for a fee.
+      &quot;kidsActivitiesException&quot;: &quot;A String&quot;, # Kids activities exception.
+      &quot;kidsClub&quot;: True or False, # Kids club. An organized program of group activities held at the hotel and designed for the enjoyment of children. Facilitated by hotel staff (or staff procured by the hotel) in an area(s) designated for the purpose of entertaining children without their parents. May include games, outings, water sports, team sports, arts and crafts, and films. Usually has set hours. Can be free or for a fee. Also known as Kids Camp or Kids program.
+      &quot;kidsClubException&quot;: &quot;A String&quot;, # Kids club exception.
+    },
+    &quot;foodAndDrink&quot;: { # Meals, snacks, and beverages available at the property. # Meals, snacks, and beverages available at the property.
+      &quot;bar&quot;: True or False, # Bar. A designated room, lounge or area of an on-site restaurant with seating at a counter behind which a hotel staffer takes the guest&#x27;s order and provides the requested alcoholic drink. Can be indoors or outdoors. Also known as Pub.
+      &quot;barException&quot;: &quot;A String&quot;, # Bar exception.
+      &quot;breakfastAvailable&quot;: True or False, # Breakfast available. The morning meal is offered to all guests. Can be free or for a fee.
+      &quot;breakfastAvailableException&quot;: &quot;A String&quot;, # Breakfast available exception.
+      &quot;breakfastBuffet&quot;: True or False, # Breakfast buffet. Breakfast meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+      &quot;breakfastBuffetException&quot;: &quot;A String&quot;, # Breakfast buffet exception.
+      &quot;buffet&quot;: True or False, # Buffet. A type of meal where guests serve themselves from a variety of dishes/foods that are put out on a table. Includes lunch and/or dinner meals. A breakfast-only buffet is not sufficient.
+      &quot;buffetException&quot;: &quot;A String&quot;, # Buffet exception.
+      &quot;dinnerBuffet&quot;: True or False, # Dinner buffet. Dinner meal service where guests serve themselves from a variety of dishes/foods that are put out on a table.
+      &quot;dinnerBuffetException&quot;: &quot;A String&quot;, # Dinner buffet exception.
+      &quot;freeBreakfast&quot;: True or False, # Free breakfast. Breakfast is offered for free to all guests. Does not apply if limited to certain room packages.
+      &quot;freeBreakfastException&quot;: &quot;A String&quot;, # Free breakfast exception.
+      &quot;restaurant&quot;: True or False, # Restaurant. A business onsite at the hotel that is open to the public as well as guests, and offers meals and beverages to consume at tables or counters. May or may not include table service. Also known as cafe, buffet, eatery. A &quot;breakfast room&quot; where the hotel serves breakfast only to guests (not the general public) does not count as a restaurant.
+      &quot;restaurantException&quot;: &quot;A String&quot;, # Restaurant exception.
+      &quot;restaurantsCount&quot;: 42, # Restaurants count. The number of restaurants at the hotel.
+      &quot;restaurantsCountException&quot;: &quot;A String&quot;, # Restaurants count exception.
+      &quot;roomService&quot;: True or False, # Room service. A hotel staffer delivers meals prepared onsite to a guest&#x27;s room as per their request. May or may not be available during specific hours. Services should be available to all guests (not based on rate/room booked/reward program, etc).
+      &quot;roomServiceException&quot;: &quot;A String&quot;, # Room service exception.
+      &quot;tableService&quot;: True or False, # Table service. A restaurant in which a staff member is assigned to a guest&#x27;s table to take their order, deliver and clear away food, and deliver the bill, if applicable. Also known as sit-down restaurant.
+      &quot;tableServiceException&quot;: &quot;A String&quot;, # Table service exception.
+      &quot;twentyFourHourRoomService&quot;: True or False, # 24hr room service. Room service is available 24 hours a day.
+      &quot;twentyFourHourRoomServiceException&quot;: &quot;A String&quot;, # 24hr room service exception.
+      &quot;vendingMachine&quot;: True or False, # Vending machine. A glass-fronted mechanized cabinet displaying and dispensing snacks and beverages for purchase by coins, paper money and/or credit cards.
+      &quot;vendingMachineException&quot;: &quot;A String&quot;, # Vending machine exception.
+    },
+    &quot;guestUnits&quot;: [ # Individual GuestUnitTypes that are available in this Lodging.
+      { # A specific type of unit primarily defined by its features.
+        &quot;codes&quot;: [ # Required. Unit or room code identifiers for a single GuestUnitType. Each code must be unique within a Lodging instance.
+          &quot;A String&quot;,
+        ],
+        &quot;features&quot;: { # Features and available amenities in the guest unit. # Features and available amenities of the GuestUnitType.
+          &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+          &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+          &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+          &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+          &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+          &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+          &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+          &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+          &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+          &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+          &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+          &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+          &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+          &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+          &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+          &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+          &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+          &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+          &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+            &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+              &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+              &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+              &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+              &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+              &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+              &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+              &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+              &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+              &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+              &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+              &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+              &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+              &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+              &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+              &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+              &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+            },
+            &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+              &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+              &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+              &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+              &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+              &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+              &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+              &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+              &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+              &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+              &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+              &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+              &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+              &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+              &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+              &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+              &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+              &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+              &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+              &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+              &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+              &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+              &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+              &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+              &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+              &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+              &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+              &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+              &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+              &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+              &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+              &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+              &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+            },
+            &quot;features&quot;: { # Features in the living area. # Features in the living area.
+              &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+              &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+              &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+              &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+              &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+              &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+              &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+              &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+              &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+              &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+              &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+              &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+              &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+              &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+              &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+              &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+              &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+              &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+              &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+              &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+              &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+              &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+              &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+              &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+              &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+              &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+              &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+              &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+              &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+              &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+              &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+              &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+              &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+              &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+              &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+              &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+              &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+              &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+              &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+              &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+            },
+            &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+              &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+              &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+              &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+              &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+              &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+              &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+              &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+              &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+              &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+              &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+              &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+              &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+            },
+            &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+              &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+              &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+              &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+              &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+              &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+              &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+              &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+              &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+              &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+              &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+              &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+              &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+              &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+              &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+              &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+              &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+              &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+              &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+              &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+              &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+              &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+              &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+              &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+              &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+              &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+              &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+              &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+              &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+            },
+          },
+          &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+            &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+            &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+            &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+            &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+            &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+            &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+            &quot;lakeView&quot;: True or False, # Lake view.
+            &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+            &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+            &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+            &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+            &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+            &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+            &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+            &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+            &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+          },
+        },
+        &quot;label&quot;: &quot;A String&quot;, # Required. Short, English label or name of the GuestUnitType. Target &lt;50 chars.
+      },
+    ],
+    &quot;healthAndSafety&quot;: { # Health and safety measures implemented by the hotel during COVID-19. # Health and safety measures implemented by the hotel during COVID-19.
+      &quot;enhancedCleaning&quot;: { # Enhanced cleaning measures implemented by the hotel during COVID-19. # Enhanced cleaning measures implemented by the hotel during COVID-19.
+        &quot;commercialGradeDisinfectantCleaning&quot;: True or False, # Commercial-grade disinfectant used to clean the property.
+        &quot;commercialGradeDisinfectantCleaningException&quot;: &quot;A String&quot;, # Commercial grade disinfectant cleaning exception.
+        &quot;commonAreasEnhancedCleaning&quot;: True or False, # Enhanced cleaning of common areas.
+        &quot;commonAreasEnhancedCleaningException&quot;: &quot;A String&quot;, # Common areas enhanced cleaning exception.
+        &quot;employeesTrainedCleaningProcedures&quot;: True or False, # Employees trained in COVID-19 cleaning procedures.
+        &quot;employeesTrainedCleaningProceduresException&quot;: &quot;A String&quot;, # Employees trained cleaning procedures exception.
+        &quot;employeesTrainedThoroughHandWashing&quot;: True or False, # Employees trained in thorough hand-washing.
+        &quot;employeesTrainedThoroughHandWashingException&quot;: &quot;A String&quot;, # Employees trained thorough hand washing exception.
+        &quot;employeesWearProtectiveEquipment&quot;: True or False, # Employees wear masks, face shields, and/or gloves.
+        &quot;employeesWearProtectiveEquipmentException&quot;: &quot;A String&quot;, # Employees wear protective equipment exception.
+        &quot;guestRoomsEnhancedCleaning&quot;: True or False, # Enhanced cleaning of guest rooms.
+        &quot;guestRoomsEnhancedCleaningException&quot;: &quot;A String&quot;, # Guest rooms enhanced cleaning exception.
+      },
+      &quot;increasedFoodSafety&quot;: { # Increased food safety measures implemented by the hotel during COVID-19. # Increased food safety measures implemented by the hotel during COVID-19.
+        &quot;diningAreasAdditionalSanitation&quot;: True or False, # Additional sanitation in dining areas.
+        &quot;diningAreasAdditionalSanitationException&quot;: &quot;A String&quot;, # Dining areas additional sanitation exception.
+        &quot;disposableFlatware&quot;: True or False, # Disposable flatware.
+        &quot;disposableFlatwareException&quot;: &quot;A String&quot;, # Disposable flatware exception.
+        &quot;foodPreparationAndServingAdditionalSafety&quot;: True or False, # Additional safety measures during food prep and serving.
+        &quot;foodPreparationAndServingAdditionalSafetyException&quot;: &quot;A String&quot;, # Food preparation and serving additional safety exception.
+        &quot;individualPackagedMeals&quot;: True or False, # Individually-packaged meals.
+        &quot;individualPackagedMealsException&quot;: &quot;A String&quot;, # Individual packaged meals exception.
+        &quot;singleUseFoodMenus&quot;: True or False, # Single-use menus.
+        &quot;singleUseFoodMenusException&quot;: &quot;A String&quot;, # Single use food menus exception.
+      },
+      &quot;minimizedContact&quot;: { # Minimized contact measures implemented by the hotel during COVID-19. # Minimized contact measures implemented by the hotel during COVID-19.
+        &quot;contactlessCheckinCheckout&quot;: True or False, # No-contact check-in and check-out.
+        &quot;contactlessCheckinCheckoutException&quot;: &quot;A String&quot;, # Contactless check-in check-out exception.
+        &quot;digitalGuestRoomKeys&quot;: True or False, # Keyless mobile entry to guest rooms.
+        &quot;digitalGuestRoomKeysException&quot;: &quot;A String&quot;, # Digital guest room keys exception.
+        &quot;housekeepingScheduledRequestOnly&quot;: True or False, # Housekeeping scheduled by request only.
+        &quot;housekeepingScheduledRequestOnlyException&quot;: &quot;A String&quot;, # Housekeeping scheduled request only exception.
+        &quot;noHighTouchItemsCommonAreas&quot;: True or False, # High-touch items, such as magazines, removed from common areas.
+        &quot;noHighTouchItemsCommonAreasException&quot;: &quot;A String&quot;, # No high touch items common areas exception.
+        &quot;noHighTouchItemsGuestRooms&quot;: True or False, # High-touch items, such as decorative pillows, removed from guest rooms.
+        &quot;noHighTouchItemsGuestRoomsException&quot;: &quot;A String&quot;, # No high touch items guest rooms exception.
+        &quot;plasticKeycardsDisinfected&quot;: True or False, # Plastic key cards are disinfected or discarded.
+        &quot;plasticKeycardsDisinfectedException&quot;: &quot;A String&quot;, # Plastic keycards disinfected exception.
+        &quot;roomBookingsBuffer&quot;: True or False, # Buffer maintained between room bookings.
+        &quot;roomBookingsBufferException&quot;: &quot;A String&quot;, # Room bookings buffer exception.
+      },
+      &quot;personalProtection&quot;: { # Personal protection measures implemented by the hotel during COVID-19. # Personal protection measures implemented by the hotel during COVID-19.
+        &quot;commonAreasOfferSanitizingItems&quot;: True or False, # Hand-sanitizer and/or sanitizing wipes are offered in common areas.
+        &quot;commonAreasOfferSanitizingItemsException&quot;: &quot;A String&quot;, # Common areas offer sanitizing items exception.
+        &quot;faceMaskRequired&quot;: True or False, # Masks required on the property.
+        &quot;faceMaskRequiredException&quot;: &quot;A String&quot;, # Face mask required exception.
+        &quot;guestRoomHygieneKitsAvailable&quot;: True or False, # In-room hygiene kits with masks, hand sanitizer, and/or antibacterial wipes.
+        &quot;guestRoomHygieneKitsAvailableException&quot;: &quot;A String&quot;, # Guest room hygiene kits available exception.
+        &quot;protectiveEquipmentAvailable&quot;: True or False, # Masks and/or gloves available for guests.
+        &quot;protectiveEquipmentAvailableException&quot;: &quot;A String&quot;, # Protective equipment available exception.
+      },
+      &quot;physicalDistancing&quot;: { # Physical distancing measures implemented by the hotel during COVID-19. # Physical distancing measures implemented by the hotel during COVID-19.
+        &quot;commonAreasPhysicalDistancingArranged&quot;: True or False, # Common areas arranged to maintain physical distancing.
+        &quot;commonAreasPhysicalDistancingArrangedException&quot;: &quot;A String&quot;, # Common areas physical distancing arranged exception.
+        &quot;physicalDistancingRequired&quot;: True or False, # Physical distancing required.
+        &quot;physicalDistancingRequiredException&quot;: &quot;A String&quot;, # Physical distancing required exception.
+        &quot;safetyDividers&quot;: True or False, # Safety dividers at front desk and other locations.
+        &quot;safetyDividersException&quot;: &quot;A String&quot;, # Safety dividers exception.
+        &quot;sharedAreasLimitedOccupancy&quot;: True or False, # Guest occupancy limited within shared facilities.
+        &quot;sharedAreasLimitedOccupancyException&quot;: &quot;A String&quot;, # Shared areas limited occupancy exception.
+        &quot;wellnessAreasHavePrivateSpaces&quot;: True or False, # Private spaces designated in spa and wellness areas.
+        &quot;wellnessAreasHavePrivateSpacesException&quot;: &quot;A String&quot;, # Wellness areas have private spaces exception.
+      },
+    },
+    &quot;housekeeping&quot;: { # Conveniences provided in guest units to facilitate an easier, more comfortable stay. # Conveniences provided in guest units to facilitate an easier, more comfortable stay.
+      &quot;dailyHousekeeping&quot;: True or False, # Daily housekeeping. Guest units are cleaned by hotel staff daily during guest&#x27;s stay.
+      &quot;dailyHousekeepingException&quot;: &quot;A String&quot;, # Daily housekeeping exception.
+      &quot;housekeepingAvailable&quot;: True or False, # Housekeeping available. Guest units are cleaned by hotel staff during guest&#x27;s stay. Schedule may vary from daily, weekly, or specific days of the week.
+      &quot;housekeepingAvailableException&quot;: &quot;A String&quot;, # Housekeeping available exception.
+      &quot;turndownService&quot;: True or False, # Turndown service. Hotel staff enters guest units to prepare the bed for sleep use. May or may not include some light housekeeping. May or may not include an evening snack or candy. Also known as evening service.
+      &quot;turndownServiceException&quot;: &quot;A String&quot;, # Turndown service exception.
+    },
+    &quot;metadata&quot;: { # Metadata for the Lodging. # Required. Metadata for the lodging.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Required. The latest time at which the Lodging data is asserted to be true in the real world. This is not necessarily the time at which the request is made.
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Required. Google identifier for this location in the form: `locations/{location_id}/lodging`
+    &quot;parking&quot;: { # Parking options at the property. # Parking options at the property.
+      &quot;electricCarChargingStations&quot;: True or False, # Electric car charging stations. Electric power stations, usually located outdoors, into which guests plug their electric cars to receive a charge.
+      &quot;electricCarChargingStationsException&quot;: &quot;A String&quot;, # Electric car charging stations exception.
+      &quot;freeParking&quot;: True or False, # Free parking. The hotel allows the cars of guests to be parked for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff. Free parking must be available to all guests (limited conditions does not apply).
+      &quot;freeParkingException&quot;: &quot;A String&quot;, # Free parking exception.
+      &quot;freeSelfParking&quot;: True or False, # Free self parking. Guests park their own cars for free. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply.
+      &quot;freeSelfParkingException&quot;: &quot;A String&quot;, # Free self parking exception.
+      &quot;freeValetParking&quot;: True or False, # Free valet parking. Hotel staff member parks the cars of guests. Parking with this service is free.
+      &quot;freeValetParkingException&quot;: &quot;A String&quot;, # Free valet parking exception.
+      &quot;parkingAvailable&quot;: True or False, # Parking available. The hotel allows the cars of guests to be parked. Can be free or for a fee. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Parking may be performed by the guest or by hotel staff.
+      &quot;parkingAvailableException&quot;: &quot;A String&quot;, # Parking available exception.
+      &quot;selfParkingAvailable&quot;: True or False, # Self parking available. Guests park their own cars. Parking facility may be an outdoor lot or an indoor garage, but must be onsite. Nearby parking does not apply. Can be free or for a fee.
+      &quot;selfParkingAvailableException&quot;: &quot;A String&quot;, # Self parking available exception.
+      &quot;valetParkingAvailable&quot;: True or False, # Valet parking available. Hotel staff member parks the cars of guests. Parking with this service can be free or for a fee.
+      &quot;valetParkingAvailableException&quot;: &quot;A String&quot;, # Valet parking available exception.
+    },
+    &quot;pets&quot;: { # Policies regarding guest-owned animals. # Policies regarding guest-owned animals.
+      &quot;catsAllowed&quot;: True or False, # Cats allowed. Domesticated felines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+      &quot;catsAllowedException&quot;: &quot;A String&quot;, # Cats allowed exception.
+      &quot;dogsAllowed&quot;: True or False, # Dogs allowed. Domesticated canines are permitted at the property and allowed to stay in the guest room of their owner. May or may not require a fee.
+      &quot;dogsAllowedException&quot;: &quot;A String&quot;, # Dogs allowed exception.
+      &quot;petsAllowed&quot;: True or False, # Pets allowed. Household animals are allowed at the property and in the specific guest room of their owner. May or may not include dogs, cats, reptiles and/or fish. May or may not require a fee. Service animals are not considered to be pets, so not governed by this policy.
+      &quot;petsAllowedException&quot;: &quot;A String&quot;, # Pets allowed exception.
+      &quot;petsAllowedFree&quot;: True or False, # Pets allowed free. Household animals are allowed at the property and in the specific guest room of their owner for free. May or may not include dogs, cats, reptiles, and/or fish.
+      &quot;petsAllowedFreeException&quot;: &quot;A String&quot;, # Pets allowed free exception.
+    },
+    &quot;policies&quot;: { # Property rules that impact guests. # Property rules that impact guests.
+      &quot;allInclusiveAvailable&quot;: True or False, # All inclusive available. The hotel offers a rate option that includes the cost of the room, meals, activities, and other amenities that might otherwise be charged separately.
+      &quot;allInclusiveAvailableException&quot;: &quot;A String&quot;, # All inclusive available exception.
+      &quot;allInclusiveOnly&quot;: True or False, # All inclusive only. The only rate option offered by the hotel is a rate that includes the cost of the room, meals, activities and other amenities that might otherwise be charged separately.
+      &quot;allInclusiveOnlyException&quot;: &quot;A String&quot;, # All inclusive only exception.
+      &quot;checkinTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-in time. The time of the day at which the hotel begins providing guests access to their unit at the beginning of their stay.
+        &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+        &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+      },
+      &quot;checkinTimeException&quot;: &quot;A String&quot;, # Check-in time exception.
+      &quot;checkoutTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Check-out time. The time of the day on the last day of a guest&#x27;s reserved stay at which the guest must vacate their room and settle their bill. Some hotels may offer late or early check out for a fee.
+        &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
+        &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
+        &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
+        &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
+      },
+      &quot;checkoutTimeException&quot;: &quot;A String&quot;, # Check-out time exception.
+      &quot;kidsStayFree&quot;: True or False, # Kids stay free. The children of guests are allowed to stay in the room/suite of a parent or adult without an additional fee. The policy may or may not stipulate a limit of the child&#x27;s age or the overall number of children allowed.
+      &quot;kidsStayFreeException&quot;: &quot;A String&quot;, # Kids stay free exception.
+      &quot;maxChildAge&quot;: 42, # Max child age. The hotel allows children up to a certain age to stay in the room/suite of a parent or adult without an additional fee.
+      &quot;maxChildAgeException&quot;: &quot;A String&quot;, # Max child age exception.
+      &quot;maxKidsStayFreeCount&quot;: 42, # Max kids stay free count. The hotel allows a specific, defined number of children to stay in the room/suite of a parent or adult without an additional fee.
+      &quot;maxKidsStayFreeCountException&quot;: &quot;A String&quot;, # Max kids stay free count exception.
+      &quot;paymentOptions&quot;: { # Forms of payment accepted at the property. # Forms of payment accepted at the property.
+        &quot;cash&quot;: True or False, # Cash. The hotel accepts payment by paper/coin currency.
+        &quot;cashException&quot;: &quot;A String&quot;, # Cash exception.
+        &quot;cheque&quot;: True or False, # Cheque. The hotel accepts a printed document issued by the guest&#x27;s bank in the guest&#x27;s name as a form of payment.
+        &quot;chequeException&quot;: &quot;A String&quot;, # Cheque exception.
+        &quot;creditCard&quot;: True or False, # Credit card. The hotel accepts payment by a card issued by a bank or credit card company. Also known as charge card, debit card, bank card, or charge plate.
+        &quot;creditCardException&quot;: &quot;A String&quot;, # Credit card exception.
+        &quot;debitCard&quot;: True or False, # Debit card. The hotel accepts a bank-issued card that immediately deducts the charged funds from the guest&#x27;s bank account upon processing.
+        &quot;debitCardException&quot;: &quot;A String&quot;, # Debit card exception.
+        &quot;mobileNfc&quot;: True or False, # Mobile nfc. The hotel has the compatible computer hardware terminal that reads and charges a payment app on the guest&#x27;s smartphone without requiring the two devices to make physical contact. Also known as Apple Pay, Google Pay, Samsung Pay.
+        &quot;mobileNfcException&quot;: &quot;A String&quot;, # Mobile nfc exception.
+      },
+      &quot;smokeFreeProperty&quot;: True or False, # Smoke free property. Smoking is not allowed inside the building, on balconies, or in outside spaces. Hotels that offer a designated area for guests to smoke are not considered smoke-free properties.
+      &quot;smokeFreePropertyException&quot;: &quot;A String&quot;, # Smoke free property exception.
+    },
+    &quot;pools&quot;: { # Swimming pool or recreational water facilities available at the hotel. # Swimming pool or recreational water facilities available at the hotel.
+      &quot;adultPool&quot;: True or False, # Adult pool. A pool restricted for use by adults only. Can be indoors or outdoors.
+      &quot;adultPoolException&quot;: &quot;A String&quot;, # Adult pool exception.
+      &quot;hotTub&quot;: True or False, # Hot tub. A man-made pool containing bubbling water maintained at a higher temperature and circulated by aerating jets for the purpose of soaking, relaxation and hydrotherapy. Can be indoors or outdoors. Not used for active swimming. Also known as Jacuzzi. Hot tub must be in a common area where all guests can access it. Does not apply to room-specific hot tubs that are only accessible to guest occupying that room.
+      &quot;hotTubException&quot;: &quot;A String&quot;, # Hot tub exception.
+      &quot;indoorPool&quot;: True or False, # Indoor pool. A pool located inside the hotel and available for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+      &quot;indoorPoolException&quot;: &quot;A String&quot;, # Indoor pool exception.
+      &quot;indoorPoolsCount&quot;: 42, # Indoor pools count. The sum of all indoor pools at the hotel.
+      &quot;indoorPoolsCountException&quot;: &quot;A String&quot;, # Indoor pools count exception.
+      &quot;lazyRiver&quot;: True or False, # Lazy river. A man-made pool or several interconnected recreational pools built to mimic the shape and current of a winding river where guests float in the water on inflated rubber tubes. Can be indoors or outdoors.
+      &quot;lazyRiverException&quot;: &quot;A String&quot;, # Lazy river exception.
+      &quot;lifeguard&quot;: True or False, # Lifeguard. A trained member of the hotel staff stationed by the hotel&#x27;s indoor or outdoor swimming area and responsible for the safety of swimming guests.
+      &quot;lifeguardException&quot;: &quot;A String&quot;, # Lifeguard exception.
+      &quot;outdoorPool&quot;: True or False, # Outdoor pool. A pool located outside on the grounds of the hotel and available for guests to use for swimming, soaking or recreation. Use may or may not be restricted to adults and/or children.
+      &quot;outdoorPoolException&quot;: &quot;A String&quot;, # Outdoor pool exception.
+      &quot;outdoorPoolsCount&quot;: 42, # Outdoor pools count. The sum of all outdoor pools at the hotel.
+      &quot;outdoorPoolsCountException&quot;: &quot;A String&quot;, # Outdoor pools count exception.
+      &quot;pool&quot;: True or False, # Pool. The presence of a pool, either indoors or outdoors, for guests to use for swimming and/or soaking. Use may or may not be restricted to adults and/or children.
+      &quot;poolException&quot;: &quot;A String&quot;, # Pool exception.
+      &quot;poolsCount&quot;: 42, # Pools count. The sum of all pools at the hotel.
+      &quot;poolsCountException&quot;: &quot;A String&quot;, # Pools count exception.
+      &quot;wadingPool&quot;: True or False, # Wading pool. A shallow pool designed for small children to play in. Can be indoors or outdoors. Also known as kiddie pool.
+      &quot;wadingPoolException&quot;: &quot;A String&quot;, # Wading pool exception.
+      &quot;waterPark&quot;: True or False, # Water park. An aquatic recreation area with a large pool or series of pools that has features such as a water slide or tube, wavepool, fountains, rope swings, and/or obstacle course. Can be indoors or outdoors. Also known as adventure pool.
+      &quot;waterParkException&quot;: &quot;A String&quot;, # Water park exception.
+      &quot;waterslide&quot;: True or False, # Waterslide. A continuously wetted chute positioned by an indoor or outdoor pool which people slide down into the water.
+      &quot;waterslideException&quot;: &quot;A String&quot;, # Waterslide exception.
+      &quot;wavePool&quot;: True or False, # Wave pool. A large indoor or outdoor pool with a machine that produces water currents to mimic the ocean&#x27;s crests.
+      &quot;wavePoolException&quot;: &quot;A String&quot;, # Wave pool exception.
+    },
+    &quot;property&quot;: { # General factual information about the property&#x27;s physical structure and important dates. # General factual information about the property&#x27;s physical structure and important dates.
+      &quot;builtYear&quot;: 42, # Built year. The year that construction of the property was completed.
+      &quot;builtYearException&quot;: &quot;A String&quot;, # Built year exception.
+      &quot;floorsCount&quot;: 42, # Floors count. The number of stories the building has from the ground floor to the top floor that are accessible to guests.
+      &quot;floorsCountException&quot;: &quot;A String&quot;, # Floors count exception.
+      &quot;lastRenovatedYear&quot;: 42, # Last renovated year. The year when the most recent renovation of the property was completed. Renovation may include all or any combination of the following: the units, the public spaces, the exterior, or the interior.
+      &quot;lastRenovatedYearException&quot;: &quot;A String&quot;, # Last renovated year exception.
+      &quot;roomsCount&quot;: 42, # Rooms count. The total number of rooms and suites bookable by guests for an overnight stay. Does not include event space, public spaces, conference rooms, fitness rooms, business centers, spa, salon, restaurants/bars, or shops.
+      &quot;roomsCountException&quot;: &quot;A String&quot;, # Rooms count exception.
+    },
+    &quot;services&quot;: { # Conveniences or help provided by the property to facilitate an easier, more comfortable stay. # Conveniences or help provided by the property to facilitate an easier, more comfortable stay.
+      &quot;baggageStorage&quot;: True or False, # Baggage storage. A provision for guests to leave their bags at the hotel when they arrive for their stay before the official check-in time. May or may not apply for guests who wish to leave their bags after check-out and before departing the locale. Also known as bag dropoff.
+      &quot;baggageStorageException&quot;: &quot;A String&quot;, # Baggage storage exception.
+      &quot;concierge&quot;: True or False, # Concierge. Hotel staff member(s) responsible for facilitating an easy, comfortable stay through making reservations for meals, sourcing theater tickets, arranging tours, finding a doctor, making recommendations, and answering questions.
+      &quot;conciergeException&quot;: &quot;A String&quot;, # Concierge exception.
+      &quot;convenienceStore&quot;: True or False, # Convenience store. A shop at the hotel primarily selling snacks, drinks, non-prescription medicines, health and beauty aids, magazines and newspapers.
+      &quot;convenienceStoreException&quot;: &quot;A String&quot;, # Convenience store exception.
+      &quot;currencyExchange&quot;: True or False, # Currency exchange. A staff member or automated machine tasked with the transaction of providing the native currency of the hotel&#x27;s locale in exchange for the foreign currency provided by a guest.
+      &quot;currencyExchangeException&quot;: &quot;A String&quot;, # Currency exchange exception.
+      &quot;elevator&quot;: True or False, # Elevator. A passenger elevator that transports guests from one story to another. Also known as lift.
+      &quot;elevatorException&quot;: &quot;A String&quot;, # Elevator exception.
+      &quot;frontDesk&quot;: True or False, # Front desk. A counter or desk in the lobby or the immediate interior of the hotel where a member of the staff greets guests and processes the information related to their stay (including check-in and check-out). May or may not be manned and open 24/7.
+      &quot;frontDeskException&quot;: &quot;A String&quot;, # Front desk exception.
+      &quot;fullServiceLaundry&quot;: True or False, # Full service laundry. Laundry and dry cleaning facilitated and handled by the hotel on behalf of the guest. Does not include the provision for guests to do their own laundry in on-site machines.
+      &quot;fullServiceLaundryException&quot;: &quot;A String&quot;, # Full service laundry exception.
+      &quot;giftShop&quot;: True or False, # Gift shop. An on-site store primarily selling souvenirs, mementos and other gift items. May or may not also sell sundries, magazines and newspapers, clothing, or snacks.
+      &quot;giftShopException&quot;: &quot;A String&quot;, # Gift shop exception.
+      &quot;languagesSpoken&quot;: [ # Languages spoken by at least one staff member.
+        { # Language spoken by at least one staff member.
+          &quot;languageCode&quot;: &quot;A String&quot;, # Required. The BCP-47 language code for the spoken language. Currently accepted codes: ar, de, en, es, fil, fr, hi, id, it, ja, ko, nl, pt, ru, vi, yue, zh.
+          &quot;spoken&quot;: True or False, # At least one member of the staff can speak the language.
+          &quot;spokenException&quot;: &quot;A String&quot;, # Spoken exception.
+        },
+      ],
+      &quot;selfServiceLaundry&quot;: True or False, # Self service laundry. On-site clothes washers and dryers accessible to guests for the purpose of washing and drying their own clothes. May or may not require payment to use the machines.
+      &quot;selfServiceLaundryException&quot;: &quot;A String&quot;, # Self service laundry exception.
+      &quot;socialHour&quot;: True or False, # Social hour. A reception with complimentary soft drinks, tea, coffee, wine and/or cocktails in the afternoon or evening. Can be hosted by hotel staff or guests may serve themselves. Also known as wine hour. The availability of coffee/tea in the lobby throughout the day does not constitute a social or wine hour.
+      &quot;socialHourException&quot;: &quot;A String&quot;, # Social hour exception.
+      &quot;twentyFourHourFrontDesk&quot;: True or False, # 24hr front desk. Front desk is staffed 24 hours a day.
+      &quot;twentyFourHourFrontDeskException&quot;: &quot;A String&quot;, # 24hr front desk exception.
+      &quot;wakeUpCalls&quot;: True or False, # Wake up calls. By direction of the guest, a hotel staff member will phone the guest unit at the requested hour. Also known as morning call.
+      &quot;wakeUpCallsException&quot;: &quot;A String&quot;, # Wake up calls exception.
+    },
+    &quot;someUnits&quot;: { # Features and available amenities in the guest unit. # Output only. Some units on the property have as much as these attributes.
+      &quot;bungalowOrVilla&quot;: True or False, # Bungalow or villa. An independent structure that is part of a hotel or resort that is rented to one party for a vacation stay. The hotel or resort may be completely comprised of bungalows or villas, or they may be one of several guestroom options. Guests in the bungalows or villas most often have the same, if not more, amenities and services offered to guests in other guestroom types.
+      &quot;bungalowOrVillaException&quot;: &quot;A String&quot;, # Bungalow or villa exception.
+      &quot;connectingUnitAvailable&quot;: True or False, # Connecting unit available. A guestroom type that features access to an adjacent guestroom for the purpose of booking both rooms. Most often used by families who need more than one room to accommodate the number of people in their group.
+      &quot;connectingUnitAvailableException&quot;: &quot;A String&quot;, # Connecting unit available exception.
+      &quot;executiveFloor&quot;: True or False, # Executive floor. A floor of the hotel where the guestrooms are only bookable by members of the hotel&#x27;s frequent guest membership program. Benefits of this room class include access to a designated lounge which may or may not feature free breakfast, cocktails or other perks specific to members of the program.
+      &quot;executiveFloorException&quot;: &quot;A String&quot;, # Executive floor exception.
+      &quot;maxAdultOccupantsCount&quot;: 42, # Max adult occupants count. The total number of adult guests allowed to stay overnight in the guestroom.
+      &quot;maxAdultOccupantsCountException&quot;: &quot;A String&quot;, # Max adult occupants count exception.
+      &quot;maxChildOccupantsCount&quot;: 42, # Max child occupants count. The total number of children allowed to stay overnight in the room.
+      &quot;maxChildOccupantsCountException&quot;: &quot;A String&quot;, # Max child occupants count exception.
+      &quot;maxOccupantsCount&quot;: 42, # Max occupants count. The total number of guests allowed to stay overnight in the guestroom.
+      &quot;maxOccupantsCountException&quot;: &quot;A String&quot;, # Max occupants count exception.
+      &quot;privateHome&quot;: True or False, # Private home. A privately owned home (house, townhouse, apartment, cabin, bungalow etc) that may or not serve as the owner&#x27;s residence, but is rented out in its entirety or by the room(s) to paying guest(s) for vacation stays. Not for lease-based, long-term residency.
+      &quot;privateHomeException&quot;: &quot;A String&quot;, # Private home exception.
+      &quot;suite&quot;: True or False, # Suite. A guestroom category that implies both a bedroom area and a separate living area. There may or may not be full walls and doors separating the two areas, but regardless, they are very distinct. Does not mean a couch or chair in a bedroom.
+      &quot;suiteException&quot;: &quot;A String&quot;, # Suite exception.
+      &quot;tier&quot;: &quot;A String&quot;, # Tier. Classification of the unit based on available features/amenities. A non-standard tier is only permitted if at least one other unit type falls under the standard tier.
+      &quot;tierException&quot;: &quot;A String&quot;, # Tier exception.
+      &quot;totalLivingAreas&quot;: { # An individual room, such as kitchen, bathroom, bedroom, within a bookable guest unit. # Features available in the living areas in the guest unit.
+        &quot;accessibility&quot;: { # Accessibility features of the living area. # Accessibility features of the living area.
+          &quot;adaCompliantUnit&quot;: True or False, # ADA compliant unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues, as determined by legislative policy. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+          &quot;adaCompliantUnitException&quot;: &quot;A String&quot;, # ADA compliant unit exception.
+          &quot;hearingAccessibleDoorbell&quot;: True or False, # Hearing-accessible doorbell. A visual indicator(s) of a knock or ring at the door.
+          &quot;hearingAccessibleDoorbellException&quot;: &quot;A String&quot;, # Hearing-accessible doorbell exception.
+          &quot;hearingAccessibleFireAlarm&quot;: True or False, # Hearing-accessible fire alarm. A device that gives warning of a fire through flashing lights.
+          &quot;hearingAccessibleFireAlarmException&quot;: &quot;A String&quot;, # Hearing-accessible fire alarm exception.
+          &quot;hearingAccessibleUnit&quot;: True or False, # Hearing-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with auditory issues.
+          &quot;hearingAccessibleUnitException&quot;: &quot;A String&quot;, # Hearing-accessible unit exception.
+          &quot;mobilityAccessibleBathtub&quot;: True or False, # Mobility-accessible bathtub. A bathtub that accomodates the physically challenged with additional railings or hand grips, a transfer seat or lift, and/or a door to enable walking into the tub.
+          &quot;mobilityAccessibleBathtubException&quot;: &quot;A String&quot;, # Mobility-accessible bathtub exception.
+          &quot;mobilityAccessibleShower&quot;: True or False, # Mobility-accessible shower. A shower with an enlarged door or access point to accommodate a wheelchair or a waterproof seat for the physically challenged.
+          &quot;mobilityAccessibleShowerException&quot;: &quot;A String&quot;, # Mobility-accessible shower exception.
+          &quot;mobilityAccessibleToilet&quot;: True or False, # Mobility-accessible toilet. A toilet with a higher seat, grab bars, and/or a larger area around it to accommodate the physically challenged.
+          &quot;mobilityAccessibleToiletException&quot;: &quot;A String&quot;, # Mobility-accessible toilet exception.
+          &quot;mobilityAccessibleUnit&quot;: True or False, # Mobility-accessible unit. A guestroom designed to accommodate the physical challenges of a guest with mobility and/or auditory and/or visual issues. Usually features enlarged doorways, roll-in showers with seats, bathroom grab bars, and communication equipment for the hearing and sight challenged.
+          &quot;mobilityAccessibleUnitException&quot;: &quot;A String&quot;, # Mobility-accessible unit exception.
+        },
+        &quot;eating&quot;: { # Information about eating features in the living area. # Information about eating features in the living area.
+          &quot;coffeeMaker&quot;: True or False, # Coffee maker. An electric appliance that brews coffee by heating and forcing water through ground coffee.
+          &quot;coffeeMakerException&quot;: &quot;A String&quot;, # Coffee maker exception.
+          &quot;cookware&quot;: True or False, # Cookware. Kitchen pots, pans and utensils used in connection with the preparation of food.
+          &quot;cookwareException&quot;: &quot;A String&quot;, # Cookware exception.
+          &quot;dishwasher&quot;: True or False, # Dishwasher. A counter-height electrical cabinet containing racks for dirty dishware, cookware and cutlery, and a dispenser for soap built into the pull-down door. The cabinet is attached to the plumbing system to facilitate the automatic cleaning of its contents.
+          &quot;dishwasherException&quot;: &quot;A String&quot;, # Dishwasher exception.
+          &quot;indoorGrill&quot;: True or False, # Indoor grill. Metal grates built into an indoor cooktop on which food is cooked over an open flame or electric heat source.
+          &quot;indoorGrillException&quot;: &quot;A String&quot;, # Indoor grill exception.
+          &quot;kettle&quot;: True or False, # Kettle. A covered container with a handle and a spout used for boiling water.
+          &quot;kettleException&quot;: &quot;A String&quot;, # Kettle exception.
+          &quot;kitchenAvailable&quot;: True or False, # Kitchen available. An area of the guestroom designated for the preparation and storage of food via the presence of a refrigerator, cook top, oven and sink, as well as cutlery, dishes and cookware. Usually includes small appliances such a coffee maker and a microwave. May or may not include an automatic dishwasher.
+          &quot;kitchenAvailableException&quot;: &quot;A String&quot;, # Kitchen available exception.
+          &quot;microwave&quot;: True or False, # Microwave. An electric oven that quickly cooks and heats food by microwave energy. Smaller than a standing or wall mounted oven. Usually placed on a kitchen counter, a shelf or tabletop or mounted above a cooktop.
+          &quot;microwaveException&quot;: &quot;A String&quot;, # Microwave exception.
+          &quot;minibar&quot;: True or False, # Minibar. A small refrigerated cabinet in the guestroom containing bottles/cans of soft drinks, mini bottles of alcohol, and snacks. The items are most commonly available for a fee.
+          &quot;minibarException&quot;: &quot;A String&quot;, # Minibar exception.
+          &quot;outdoorGrill&quot;: True or False, # Outdoor grill. Metal grates on which food is cooked over an open flame or electric heat source. Part of an outdoor apparatus that supports the grates. Also known as barbecue grill or barbecue.
+          &quot;outdoorGrillException&quot;: &quot;A String&quot;, # Outdoor grill exception.
+          &quot;oven&quot;: True or False, # Oven. A temperature controlled, heated metal cabinet powered by gas or electricity in which food is placed for the purpose of cooking or reheating.
+          &quot;ovenException&quot;: &quot;A String&quot;, # Oven exception.
+          &quot;refrigerator&quot;: True or False, # Refrigerator. A large, climate-controlled electrical cabinet with vertical doors. Built for the purpose of chilling and storing perishable foods.
+          &quot;refrigeratorException&quot;: &quot;A String&quot;, # Refrigerator exception.
+          &quot;sink&quot;: True or False, # Sink. A basin with a faucet attached to a water source and used for the purpose of washing and rinsing.
+          &quot;sinkException&quot;: &quot;A String&quot;, # Sink exception.
+          &quot;snackbar&quot;: True or False, # Snackbar. A small cabinet in the guestroom containing snacks. The items are most commonly available for a fee.
+          &quot;snackbarException&quot;: &quot;A String&quot;, # Snackbar exception.
+          &quot;stove&quot;: True or False, # Stove. A kitchen appliance powered by gas or electricity for the purpose of creating a flame or hot surface on which pots of food can be cooked. Also known as cooktop or hob.
+          &quot;stoveException&quot;: &quot;A String&quot;, # Stove exception.
+          &quot;teaStation&quot;: True or False, # Tea station. A small area with the supplies needed to heat water and make tea.
+          &quot;teaStationException&quot;: &quot;A String&quot;, # Tea station exception.
+          &quot;toaster&quot;: True or False, # Toaster. A small, temperature controlled electric appliance with rectangular slots at the top that are lined with heated coils for the purpose of browning slices of bread products.
+          &quot;toasterException&quot;: &quot;A String&quot;, # Toaster exception.
+        },
+        &quot;features&quot;: { # Features in the living area. # Features in the living area.
+          &quot;airConditioning&quot;: True or False, # Air conditioning. An electrical machine used to cool the temperature of the guestroom.
+          &quot;airConditioningException&quot;: &quot;A String&quot;, # Air conditioning exception.
+          &quot;bathtub&quot;: True or False, # Bathtub. A fixed plumbing feature set on the floor and consisting of a large container that accommodates the body of an adult for the purpose of seated bathing. Includes knobs or fixtures to control the temperature of the water, a faucet through which the water flows, and a drain that can be closed for filling and opened for draining.
+          &quot;bathtubException&quot;: &quot;A String&quot;, # Bathtub exception.
+          &quot;bidet&quot;: True or False, # Bidet. A plumbing fixture attached to a toilet or a low, fixed sink designed for the purpose of washing after toilet use.
+          &quot;bidetException&quot;: &quot;A String&quot;, # Bidet exception.
+          &quot;dryer&quot;: True or False, # Dryer. An electrical machine designed to dry clothing.
+          &quot;dryerException&quot;: &quot;A String&quot;, # Dryer exception.
+          &quot;electronicRoomKey&quot;: True or False, # Electronic room key. A card coded by the check-in computer that is read by the lock on the hotel guestroom door to allow for entry.
+          &quot;electronicRoomKeyException&quot;: &quot;A String&quot;, # Electronic room key exception.
+          &quot;fireplace&quot;: True or False, # Fireplace. A framed opening (aka hearth) at the base of a chimney in which logs or an electrical fire feature are burned to provide a relaxing ambiance or to heat the room. Often made of bricks or stone.
+          &quot;fireplaceException&quot;: &quot;A String&quot;, # Fireplace exception.
+          &quot;hairdryer&quot;: True or False, # Hairdryer. A handheld electric appliance that blows temperature-controlled air for the purpose of drying wet hair. Can be mounted to a bathroom wall or a freestanding device stored in the guestroom&#x27;s bathroom or closet.
+          &quot;hairdryerException&quot;: &quot;A String&quot;, # Hairdryer exception.
+          &quot;heating&quot;: True or False, # Heating. An electrical machine used to warm the temperature of the guestroom.
+          &quot;heatingException&quot;: &quot;A String&quot;, # Heating exception.
+          &quot;inunitSafe&quot;: True or False, # In-unit safe. A strong fireproof cabinet with a programmable lock, used for the protected storage of valuables in a guestroom. Often built into a closet.
+          &quot;inunitSafeException&quot;: &quot;A String&quot;, # In-unit safe exception.
+          &quot;inunitWifiAvailable&quot;: True or False, # In-unit Wifi available. Guests can wirelessly connect to the Internet in the guestroom. Can be free or for a fee.
+          &quot;inunitWifiAvailableException&quot;: &quot;A String&quot;, # In-unit Wifi available exception.
+          &quot;ironingEquipment&quot;: True or False, # Ironing equipment. A device, usually with a flat metal base, that is heated to smooth, finish, or press clothes and a flat, padded, cloth-covered surface on which the clothes are worked.
+          &quot;ironingEquipmentException&quot;: &quot;A String&quot;, # Ironing equipment exception.
+          &quot;payPerViewMovies&quot;: True or False, # Pay per view movies. Televisions with channels that offer films that can be viewed for a fee, and have an interface to allow the viewer to accept the terms and approve payment.
+          &quot;payPerViewMoviesException&quot;: &quot;A String&quot;, # Pay per view movies exception.
+          &quot;privateBathroom&quot;: True or False, # Private bathroom. A bathroom designated for the express use of the guests staying in a specific guestroom.
+          &quot;privateBathroomException&quot;: &quot;A String&quot;, # Private bathroom exception.
+          &quot;shower&quot;: True or False, # Shower. A fixed plumbing fixture for standing bathing that features a tall spray spout or faucet through which water flows, a knob or knobs that control the water&#x27;s temperature, and a drain in the floor.
+          &quot;showerException&quot;: &quot;A String&quot;, # Shower exception.
+          &quot;toilet&quot;: True or False, # Toilet. A fixed bathroom feature connected to a sewer or septic system and consisting of a water-flushed bowl with a seat, as well as a device that elicites the water-flushing action. Used for the process and disposal of human waste.
+          &quot;toiletException&quot;: &quot;A String&quot;, # Toilet exception.
+          &quot;tv&quot;: True or False, # TV. A television is available in the guestroom.
+          &quot;tvCasting&quot;: True or False, # TV casting. A television equipped with a device through which the video entertainment accessed on a personal computer, phone or tablet can be wirelessly delivered to and viewed on the guestroom&#x27;s television.
+          &quot;tvCastingException&quot;: &quot;A String&quot;, # TV exception.
+          &quot;tvException&quot;: &quot;A String&quot;, # TV exception.
+          &quot;tvStreaming&quot;: True or False, # TV streaming. Televisions that embed a range of web-based apps to allow for watching media from those apps.
+          &quot;tvStreamingException&quot;: &quot;A String&quot;, # TV streaming exception.
+          &quot;universalPowerAdapters&quot;: True or False, # Universal power adapters. A power supply for electronic devices which plugs into a wall for the purpose of converting AC to a single DC voltage. Also know as AC adapter or charger.
+          &quot;universalPowerAdaptersException&quot;: &quot;A String&quot;, # Universal power adapters exception.
+          &quot;washer&quot;: True or False, # Washer. An electrical machine connected to a running water source designed to launder clothing.
+          &quot;washerException&quot;: &quot;A String&quot;, # Washer exception.
+        },
+        &quot;layout&quot;: { # Information about the layout of the living area. # Information about the layout of the living area.
+          &quot;balcony&quot;: True or False, # Balcony. An outdoor platform attached to a building and surrounded by a short wall, fence or other safety railing. The balcony is accessed through a door in a guestroom or suite and is for use by the guest staying in that room. May or may not include seating or outdoor furniture. Is not located on the ground floor. Also lanai.
+          &quot;balconyException&quot;: &quot;A String&quot;, # Balcony exception.
+          &quot;livingAreaSqMeters&quot;: 3.14, # Living area sq meters. The measurement in meters of the area of a guestroom&#x27;s living space.
+          &quot;livingAreaSqMetersException&quot;: &quot;A String&quot;, # Living area sq meters exception.
+          &quot;loft&quot;: True or False, # Loft. A three-walled upper area accessed by stairs or a ladder that overlooks the lower area of a room.
+          &quot;loftException&quot;: &quot;A String&quot;, # Loft exception.
+          &quot;nonSmoking&quot;: True or False, # Non smoking. A guestroom in which the smoking of cigarettes, cigars and pipes is prohibited.
+          &quot;nonSmokingException&quot;: &quot;A String&quot;, # Non smoking exception.
+          &quot;patio&quot;: True or False, # Patio. A paved, outdoor area with seating attached to and accessed through a ground-floor guestroom for use by the occupants of the guestroom.
+          &quot;patioException&quot;: &quot;A String&quot;, # Patio exception.
+          &quot;stairs&quot;: True or False, # Stairs. There are steps leading from one level or story to another in the unit.
+          &quot;stairsException&quot;: &quot;A String&quot;, # Stairs exception.
+        },
+        &quot;sleeping&quot;: { # Information about sleeping features in the living area. # Information about sleeping features in the living area.
+          &quot;bedsCount&quot;: 42, # Beds count. The number of permanent beds present in a guestroom. Does not include rollaway beds, cribs or sofabeds.
+          &quot;bedsCountException&quot;: &quot;A String&quot;, # Beds count exception.
+          &quot;bunkBedsCount&quot;: 42, # Bunk beds count. The number of furniture pieces in which one framed mattress is fixed directly above another by means of a physical frame. This allows one person(s) to sleep in the bottom bunk and one person(s) to sleep in the top bunk. Also known as double decker bed.
+          &quot;bunkBedsCountException&quot;: &quot;A String&quot;, # Bunk beds count exception.
+          &quot;cribsCount&quot;: 42, # Cribs count. The number of small beds for an infant or toddler that the guestroom can obtain. The bed is surrounded by a high railing to prevent the child from falling or climbing out of the bed
+          &quot;cribsCountException&quot;: &quot;A String&quot;, # Cribs count exception.
+          &quot;doubleBedsCount&quot;: 42, # Double beds count. The number of medium beds measuring 53&quot;W x 75&quot;L (135cm x 191cm). Also known as full size bed.
+          &quot;doubleBedsCountException&quot;: &quot;A String&quot;, # Double beds count exception.
+          &quot;featherPillows&quot;: True or False, # Feather pillows. The option for guests to obtain bed pillows that are stuffed with the feathers and down of ducks or geese.
+          &quot;featherPillowsException&quot;: &quot;A String&quot;, # Feather pillows exception.
+          &quot;hypoallergenicBedding&quot;: True or False, # Hypoallergenic bedding. Bedding such as linens, pillows, mattress covers and/or mattresses that are made of materials known to be resistant to allergens such as mold, dust and dander.
+          &quot;hypoallergenicBeddingException&quot;: &quot;A String&quot;, # Hypoallergenic bedding exception.
+          &quot;kingBedsCount&quot;: 42, # King beds count. The number of large beds measuring 76&quot;W x 80&quot;L (193cm x 102cm). Most often meant to accompany two people. Includes California king and super king.
+          &quot;kingBedsCountException&quot;: &quot;A String&quot;, # King beds count exception.
+          &quot;memoryFoamPillows&quot;: True or False, # Memory foam pillows. The option for guests to obtain bed pillows that are stuffed with a man-made foam that responds to body heat by conforming to the body closely, and then recovers its shape when the pillow cools down.
+          &quot;memoryFoamPillowsException&quot;: &quot;A String&quot;, # Memory foam pillows exception.
+          &quot;otherBedsCount&quot;: 42, # Other beds count. The number of beds that are not standard mattress and boxspring setups such as Japanese tatami mats, trundle beds, air mattresses and cots.
+          &quot;otherBedsCountException&quot;: &quot;A String&quot;, # Other beds count exception.
+          &quot;queenBedsCount&quot;: 42, # Queen beds count. The number of medium-large beds measuring 60&quot;W x 80&quot;L (152cm x 102cm).
+          &quot;queenBedsCountException&quot;: &quot;A String&quot;, # Queen beds count exception.
+          &quot;rollAwayBedsCount&quot;: 42, # Roll away beds count. The number of mattresses on wheeled frames that can be folded in half and rolled away for easy storage that the guestroom can obtain upon request.
+          &quot;rollAwayBedsCountException&quot;: &quot;A String&quot;, # Roll away beds count exception.
+          &quot;singleOrTwinBedsCount&quot;: 42, # Single or twin count beds. The number of smaller beds measuring 38&quot;W x 75&quot;L (97cm x 191cm) that can accommodate one adult.
+          &quot;singleOrTwinBedsCountException&quot;: &quot;A String&quot;, # Single or twin beds count exception.
+          &quot;sofaBedsCount&quot;: 42, # Sofa beds count. The number of specially designed sofas that can be made to serve as a bed by lowering its hinged upholstered back to horizontal position or by pulling out a concealed mattress.
+          &quot;sofaBedsCountException&quot;: &quot;A String&quot;, # Sofa beds count exception.
+          &quot;syntheticPillows&quot;: True or False, # Synthetic pillows. The option for guests to obtain bed pillows stuffed with polyester material crafted to reproduce the feel of a pillow stuffed with down and feathers.
+          &quot;syntheticPillowsException&quot;: &quot;A String&quot;, # Synthetic pillows exception.
+        },
+      },
+      &quot;views&quot;: { # Views available from the guest unit itself. # Views available from the guest unit itself.
+        &quot;beachView&quot;: True or False, # Beach view. A guestroom that features a window through which guests can see the beach.
+        &quot;beachViewException&quot;: &quot;A String&quot;, # Beach view exception.
+        &quot;cityView&quot;: True or False, # City view. A guestroom that features a window through which guests can see the buildings, parks and/or streets of the city.
+        &quot;cityViewException&quot;: &quot;A String&quot;, # City view exception.
+        &quot;gardenView&quot;: True or False, # Garden view. A guestroom that features a window through which guests can see a garden.
+        &quot;gardenViewException&quot;: &quot;A String&quot;, # Garden view exception.
+        &quot;lakeView&quot;: True or False, # Lake view.
+        &quot;lakeViewException&quot;: &quot;A String&quot;, # Lake view exception.
+        &quot;landmarkView&quot;: True or False, # Landmark view. A guestroom that features a window through which guests can see a landmark such as the countryside, a golf course, the forest, a park, a rain forst, a mountain or a slope.
+        &quot;landmarkViewException&quot;: &quot;A String&quot;, # Landmark view exception.
+        &quot;oceanView&quot;: True or False, # Ocean view. A guestroom that features a window through which guests can see the ocean.
+        &quot;oceanViewException&quot;: &quot;A String&quot;, # Ocean view exception.
+        &quot;poolView&quot;: True or False, # Pool view. A guestroom that features a window through which guests can see the hotel&#x27;s swimming pool.
+        &quot;poolViewException&quot;: &quot;A String&quot;, # Pool view exception.
+        &quot;valleyView&quot;: True or False, # Valley view. A guestroom that features a window through which guests can see over a valley.
+        &quot;valleyViewException&quot;: &quot;A String&quot;, # Valley view exception.
+      },
+    },
+    &quot;transportation&quot;: { # Vehicles or vehicular services facilitated or owned by the property. # Vehicles or vehicular services facilitated or owned by the property.
+      &quot;airportShuttle&quot;: True or False, # Airport shuttle. The hotel provides guests with a chauffeured van or bus to and from the airport. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them. Applies if the hotel has a third-party shuttle service (office/desk etc.) within the hotel. As long as hotel provides this service, it doesn&#x27;t matter if it&#x27;s directly with them or a third party they work with. Does not apply if guest has to coordinate with an entity outside/other than the hotel.
+      &quot;airportShuttleException&quot;: &quot;A String&quot;, # Airport shuttle exception.
+      &quot;carRentalOnProperty&quot;: True or False, # Car rental on property. A branch of a rental car company with a processing desk in the hotel. Available cars for rent may be awaiting at the hotel or in a nearby lot.
+      &quot;carRentalOnPropertyException&quot;: &quot;A String&quot;, # Car rental on property exception.
+      &quot;freeAirportShuttle&quot;: True or False, # Free airport shuttle. Airport shuttle is free to guests. Must be free to all guests without any conditions.
+      &quot;freeAirportShuttleException&quot;: &quot;A String&quot;, # Free airport shuttle exception.
+      &quot;freePrivateCarService&quot;: True or False, # Free private car service. Private chauffeured car service is free to guests.
+      &quot;freePrivateCarServiceException&quot;: &quot;A String&quot;, # Free private car service exception.
+      &quot;localShuttle&quot;: True or False, # Local shuttle. A car, van or bus provided by the hotel to transport guests to destinations within a specified range of distance around the hotel. Usually shopping and/or convention centers, downtown districts, or beaches. Can be free or for a fee.
+      &quot;localShuttleException&quot;: &quot;A String&quot;, # Local shuttle exception.
+      &quot;privateCarService&quot;: True or False, # Private car service. Hotel provides a private chauffeured car to transport guests to destinations. Passengers in the car are either alone or are known to one another and have requested the car together. Service can be free or for a fee and travel distance is usually limited to a specific range. Not a taxi.
+      &quot;privateCarServiceException&quot;: &quot;A String&quot;, # Private car service exception.
+      &quot;transfer&quot;: True or False, # Transfer. Hotel provides a shuttle service or car service to take guests to and from the nearest airport or train station. Can be free or for a fee. Guests may share the vehicle with other guests unknown to them.
+      &quot;transferException&quot;: &quot;A String&quot;, # Transfer exception.
+    },
+    &quot;wellness&quot;: { # Guest facilities at the property to promote or maintain health, beauty, and fitness. # Guest facilities at the property to promote or maintain health, beauty, and fitness.
+      &quot;doctorOnCall&quot;: True or False, # Doctor on call. The hotel has a contract with a medical professional who provides services to hotel guests should they fall ill during their stay. The doctor may or may not have an on-site office or be at the hotel at all times.
+      &quot;doctorOnCallException&quot;: &quot;A String&quot;, # Doctor on call exception.
+      &quot;ellipticalMachine&quot;: True or False, # Elliptical machine. An electric, stationary fitness machine with pedals that simulates climbing, walking or running and provides a user-controlled range of speeds and tensions. May not have arm-controlled levers to work out the upper body as well. Commonly found in a gym, fitness room, health center, or health club.
+      &quot;ellipticalMachineException&quot;: &quot;A String&quot;, # Elliptical machine exception.
+      &quot;fitnessCenter&quot;: True or False, # Fitness center. A room or building at the hotel containing equipment to promote physical activity, such as treadmills, elliptical machines, stationary bikes, weight machines, free weights, and/or stretching mats. Use of the fitness center can be free or for a fee. May or may not be staffed. May or may not offer instructor-led classes in various styles of physical conditioning. May or may not be open 24/7. May or may not include locker rooms and showers. Also known as health club, gym, fitness room, health center.
+      &quot;fitnessCenterException&quot;: &quot;A String&quot;, # Fitness center exception.
+      &quot;freeFitnessCenter&quot;: True or False, # Free fitness center. Guests may use the fitness center for free.
+      &quot;freeFitnessCenterException&quot;: &quot;A String&quot;, # Free fitness center exception.
+      &quot;freeWeights&quot;: True or False, # Free weights. Individual handheld fitness equipment of varied weights used for upper body strength training or bodybuilding. Also known as barbells, dumbbells, or kettlebells. Often stored on a rack with the weights arranged from light to heavy. Commonly found in a gym, fitness room, health center, or health club.
+      &quot;freeWeightsException&quot;: &quot;A String&quot;, # Free weights exception.
+      &quot;massage&quot;: True or False, # Massage. A service provided by a trained massage therapist involving the physical manipulation of a guest&#x27;s muscles in order to achieve relaxation or pain relief.
+      &quot;massageException&quot;: &quot;A String&quot;, # Massage exception.
+      &quot;salon&quot;: True or False, # Salon. A room at the hotel where professionals provide hair styling services such as shampooing, blow drying, hair dos, hair cutting and hair coloring. Also known as hairdresser or beauty salon.
+      &quot;salonException&quot;: &quot;A String&quot;, # Salon exception.
+      &quot;sauna&quot;: True or False, # Sauna. A wood-paneled room heated to a high temperature where guests sit on built-in wood benches for the purpose of perspiring and relaxing their muscles. Can be dry or slightly wet heat. Not a steam room.
+      &quot;saunaException&quot;: &quot;A String&quot;, # Sauna exception.
+      &quot;spa&quot;: True or False, # Spa. A designated area, room or building at the hotel offering health and beauty treatment through such means as steam baths, exercise equipment, and massage. May also offer facials, nail care, and hair care. Services are usually available by appointment and for an additional fee. Does not apply if hotel only offers a steam room; must offer other beauty and/or health treatments as well.
+      &quot;spaException&quot;: &quot;A String&quot;, # Spa exception.
+      &quot;treadmill&quot;: True or False, # Treadmill. An electric stationary fitness machine that simulates a moving path to promote walking or running within a range of user-controlled speeds and inclines. Also known as running machine. Commonly found in a gym, fitness room, health center, or health club.
+      &quot;treadmillException&quot;: &quot;A String&quot;, # Treadmill exception.
+      &quot;weightMachine&quot;: True or False, # Weight machine. Non-electronic fitness equipment designed for the user to target the exertion of different muscles. Usually incorporates a padded seat, a stack of flat weights and various bars and pulleys. May be designed for toning a specific part of the body or may involve different user-controlled settings, hardware and pulleys so as to provide an overall workout in one machine. Commonly found in a gym, fitness center, fitness room, or health club.
+      &quot;weightMachineException&quot;: &quot;A String&quot;, # Weight machine exception.
+    },
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.html b/docs/dyn/networkconnectivity_v1alpha1.html
new file mode 100644
index 0000000..25635ae
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.html b/docs/dyn/networkconnectivity_v1alpha1.projects.html
new file mode 100644
index 0000000..5f86210
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.html
new file mode 100644
index 0000000..fe3070c
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a> . <a href="networkconnectivity_v1alpha1.projects.locations.global_.html">global_</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.global_.hubs.html">hubs()</a></code>
+</p>
+<p class="firstline">Returns the hubs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.global_.policyBasedRoutes.html">policyBasedRoutes()</a></code>
+</p>
+<p class="firstline">Returns the policyBasedRoutes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.hubs.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.hubs.html
new file mode 100644
index 0000000..2f6d2b9
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.hubs.html
@@ -0,0 +1,508 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a> . <a href="networkconnectivity_v1alpha1.projects.locations.global_.html">global_</a> . <a href="networkconnectivity_v1alpha1.projects.locations.global_.hubs.html">hubs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, hubId=None, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Hub in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single Hub.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single Hub.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Hubs in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single Hub.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, hubId=None, requestId=None, x__xgafv=None)</code>
+  <pre>Creates a new Hub in a given project and location.
+
+Args:
+  parent: string, Required. The parent resource&#x27;s name of the Hub. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Network Connectivity Center is a hub-and-spoke abstraction for network connectivity management in Google Cloud. It reduces operational complexity through a simple, centralized connectivity management model. Following is the resource message of a hub.
+  &quot;createTime&quot;: &quot;A String&quot;, # Time when the Hub was created.
+  &quot;description&quot;: &quot;A String&quot;, # Short description of the hub resource.
+  &quot;labels&quot;: { # User-defined labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Hub resource.
+  &quot;spokes&quot;: [ # Output only. A list of the URIs of all attached spokes
+    &quot;A String&quot;,
+  ],
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Hub resources. If a Hub resource is deleted and another with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Time when the Hub was updated.
+}
+
+  hubId: string, Optional. Unique id for the Hub to create.
+  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Deletes a single Hub.
+
+Args:
+  name: string, Required. The name of the Hub to delete. (required)
+  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single Hub.
+
+Args:
+  name: string, Required. Name of the Hub resource to get. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Network Connectivity Center is a hub-and-spoke abstraction for network connectivity management in Google Cloud. It reduces operational complexity through a simple, centralized connectivity management model. Following is the resource message of a hub.
+  &quot;createTime&quot;: &quot;A String&quot;, # Time when the Hub was created.
+  &quot;description&quot;: &quot;A String&quot;, # Short description of the hub resource.
+  &quot;labels&quot;: { # User-defined labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Hub resource.
+  &quot;spokes&quot;: [ # Output only. A list of the URIs of all attached spokes
+    &quot;A String&quot;,
+  ],
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Hub resources. If a Hub resource is deleted and another with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Time when the Hub was updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Hubs in a given project and location.
+
+Args:
+  parent: string, Required. The parent resource&#x27;s name. (required)
+  filter: string, A filter expression that filters the results listed in the response.
+  orderBy: string, Sort the results by a certain order.
+  pageSize: integer, The maximum number of results per page that should be returned.
+  pageToken: string, The page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for HubService.ListHubs method.
+  &quot;hubs&quot;: [ # Hubs to be returned.
+    { # Network Connectivity Center is a hub-and-spoke abstraction for network connectivity management in Google Cloud. It reduces operational complexity through a simple, centralized connectivity management model. Following is the resource message of a hub.
+      &quot;createTime&quot;: &quot;A String&quot;, # Time when the Hub was created.
+      &quot;description&quot;: &quot;A String&quot;, # Short description of the hub resource.
+      &quot;labels&quot;: { # User-defined labels.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Hub resource.
+      &quot;spokes&quot;: [ # Output only. A list of the URIs of all attached spokes
+        &quot;A String&quot;,
+      ],
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+      &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Hub resources. If a Hub resource is deleted and another with the same name is created, it gets a different unique_id.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Time when the Hub was updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single Hub.
+
+Args:
+  name: string, Immutable. The name of a Hub resource. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Network Connectivity Center is a hub-and-spoke abstraction for network connectivity management in Google Cloud. It reduces operational complexity through a simple, centralized connectivity management model. Following is the resource message of a hub.
+  &quot;createTime&quot;: &quot;A String&quot;, # Time when the Hub was created.
+  &quot;description&quot;: &quot;A String&quot;, # Short description of the hub resource.
+  &quot;labels&quot;: { # User-defined labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Hub resource.
+  &quot;spokes&quot;: [ # Output only. A list of the URIs of all attached spokes
+    &quot;A String&quot;,
+  ],
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Hub resources. If a Hub resource is deleted and another with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Time when the Hub was updated.
+}
+
+  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the Hub resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.policyBasedRoutes.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.policyBasedRoutes.html
new file mode 100644
index 0000000..58db785
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.global_.policyBasedRoutes.html
@@ -0,0 +1,258 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a> . <a href="networkconnectivity_v1alpha1.projects.locations.global_.html">global_</a> . <a href="networkconnectivity_v1alpha1.projects.locations.global_.policyBasedRoutes.html">policyBasedRoutes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.html
new file mode 100644
index 0000000..9f797af
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.html
@@ -0,0 +1,191 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.global_.html">global_()</a></code>
+</p>
+<p class="firstline">Returns the global_ Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.internalRanges.html">internalRanges()</a></code>
+</p>
+<p class="firstline">Returns the internalRanges Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networkconnectivity_v1alpha1.projects.locations.spokes.html">spokes()</a></code>
+</p>
+<p class="firstline">Returns the spokes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.internalRanges.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.internalRanges.html
new file mode 100644
index 0000000..a541c51
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.internalRanges.html
@@ -0,0 +1,258 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a> . <a href="networkconnectivity_v1alpha1.projects.locations.internalRanges.html">internalRanges</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.operations.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.operations.html
new file mode 100644
index 0000000..c48becc
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a> . <a href="networkconnectivity_v1alpha1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networkconnectivity_v1alpha1.projects.locations.spokes.html b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.spokes.html
new file mode 100644
index 0000000..e4ab028
--- /dev/null
+++ b/docs/dyn/networkconnectivity_v1alpha1.projects.locations.spokes.html
@@ -0,0 +1,552 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networkconnectivity_v1alpha1.html">Network Connectivity API</a> . <a href="networkconnectivity_v1alpha1.projects.html">projects</a> . <a href="networkconnectivity_v1alpha1.projects.locations.html">locations</a> . <a href="networkconnectivity_v1alpha1.projects.locations.spokes.html">spokes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, requestId=None, spokeId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Spoke in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single Spoke.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single Spoke.</p>
+<p class="toc_element">
+  <code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Spokes in a given project and location.</p>
+<p class="toc_element">
+  <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, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single Spoke.</p>
+<p class="toc_element">
+  <code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, requestId=None, spokeId=None, x__xgafv=None)</code>
+  <pre>Creates a new Spoke in a given project and location.
+
+Args:
+  parent: string, Required. The parent&#x27;s resource name of the Spoke. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Spoke is an abstraction of a network attachment being attached to a Hub. A Spoke can be underlying a VPN tunnel, a VLAN (interconnect) attachment, a Router appliance, etc.
+  &quot;createTime&quot;: &quot;A String&quot;, # The time when the Spoke was created.
+  &quot;description&quot;: &quot;A String&quot;, # Short description of the spoke resource
+  &quot;hub&quot;: &quot;A String&quot;, # The resource URL of the hub resource that the spoke is attached to
+  &quot;labels&quot;: { # User-defined labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;linkedInterconnectAttachments&quot;: [ # The URIs of linked interconnect attachment resources
+    &quot;A String&quot;,
+  ],
+  &quot;linkedRouterApplianceInstances&quot;: [ # The URIs of linked Router appliance resources
+    { # RouterAppliance represents a Router appliance which is specified by a VM URI and a NIC address.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the network interface to use for peering.
+      &quot;networkInterface&quot;: &quot;A String&quot;,
+      &quot;virtualMachine&quot;: &quot;A String&quot;, # The URI of the virtual machine resource
+    },
+  ],
+  &quot;linkedVpnTunnels&quot;: [ # The URIs of linked VPN tunnel resources
+    &quot;A String&quot;,
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Spoke resource.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Spoke resources. If a Spoke resource is deleted and another with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # The time when the Spoke was updated.
+}
+
+  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  spokeId: string, Optional. Unique id for the Spoke to create.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
+  <pre>Deletes a single Spoke.
+
+Args:
+  name: string, Required. The name of the Spoke to delete. (required)
+  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single Spoke.
+
+Args:
+  name: string, Required. The name of Spoke resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Spoke is an abstraction of a network attachment being attached to a Hub. A Spoke can be underlying a VPN tunnel, a VLAN (interconnect) attachment, a Router appliance, etc.
+  &quot;createTime&quot;: &quot;A String&quot;, # The time when the Spoke was created.
+  &quot;description&quot;: &quot;A String&quot;, # Short description of the spoke resource
+  &quot;hub&quot;: &quot;A String&quot;, # The resource URL of the hub resource that the spoke is attached to
+  &quot;labels&quot;: { # User-defined labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;linkedInterconnectAttachments&quot;: [ # The URIs of linked interconnect attachment resources
+    &quot;A String&quot;,
+  ],
+  &quot;linkedRouterApplianceInstances&quot;: [ # The URIs of linked Router appliance resources
+    { # RouterAppliance represents a Router appliance which is specified by a VM URI and a NIC address.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the network interface to use for peering.
+      &quot;networkInterface&quot;: &quot;A String&quot;,
+      &quot;virtualMachine&quot;: &quot;A String&quot;, # The URI of the virtual machine resource
+    },
+  ],
+  &quot;linkedVpnTunnels&quot;: [ # The URIs of linked VPN tunnel resources
+    &quot;A String&quot;,
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Spoke resource.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Spoke resources. If a Spoke resource is deleted and another with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # The time when the Spoke was updated.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
+  <pre>Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field. (required)
+  options_requestedPolicyVersion: integer, Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Spokes in a given project and location.
+
+Args:
+  parent: string, Required. The parent&#x27;s resource name. (required)
+  filter: string, A filter expression that filters the results listed in the response.
+  orderBy: string, Sort the results by a certain order.
+  pageSize: integer, The maximum number of results per page that should be returned.
+  pageToken: string, The page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response for HubService.ListSpokes.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.
+  &quot;spokes&quot;: [ # Spokes to be returned.
+    { # A Spoke is an abstraction of a network attachment being attached to a Hub. A Spoke can be underlying a VPN tunnel, a VLAN (interconnect) attachment, a Router appliance, etc.
+      &quot;createTime&quot;: &quot;A String&quot;, # The time when the Spoke was created.
+      &quot;description&quot;: &quot;A String&quot;, # Short description of the spoke resource
+      &quot;hub&quot;: &quot;A String&quot;, # The resource URL of the hub resource that the spoke is attached to
+      &quot;labels&quot;: { # User-defined labels.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;linkedInterconnectAttachments&quot;: [ # The URIs of linked interconnect attachment resources
+        &quot;A String&quot;,
+      ],
+      &quot;linkedRouterApplianceInstances&quot;: [ # The URIs of linked Router appliance resources
+        { # RouterAppliance represents a Router appliance which is specified by a VM URI and a NIC address.
+          &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the network interface to use for peering.
+          &quot;networkInterface&quot;: &quot;A String&quot;,
+          &quot;virtualMachine&quot;: &quot;A String&quot;, # The URI of the virtual machine resource
+        },
+      ],
+      &quot;linkedVpnTunnels&quot;: [ # The URIs of linked VPN tunnel resources
+        &quot;A String&quot;,
+      ],
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Spoke resource.
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+      &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Spoke resources. If a Spoke resource is deleted and another with the same name is created, it gets a different unique_id.
+      &quot;updateTime&quot;: &quot;A String&quot;, # The time when the Spoke was updated.
+    },
+  ],
+  &quot;unreachable&quot;: [ # Locations that could not be reached.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single Spoke.
+
+Args:
+  name: string, Immutable. The name of a Spoke resource. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A Spoke is an abstraction of a network attachment being attached to a Hub. A Spoke can be underlying a VPN tunnel, a VLAN (interconnect) attachment, a Router appliance, etc.
+  &quot;createTime&quot;: &quot;A String&quot;, # The time when the Spoke was created.
+  &quot;description&quot;: &quot;A String&quot;, # Short description of the spoke resource
+  &quot;hub&quot;: &quot;A String&quot;, # The resource URL of the hub resource that the spoke is attached to
+  &quot;labels&quot;: { # User-defined labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;linkedInterconnectAttachments&quot;: [ # The URIs of linked interconnect attachment resources
+    &quot;A String&quot;,
+  ],
+  &quot;linkedRouterApplianceInstances&quot;: [ # The URIs of linked Router appliance resources
+    { # RouterAppliance represents a Router appliance which is specified by a VM URI and a NIC address.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address of the network interface to use for peering.
+      &quot;networkInterface&quot;: &quot;A String&quot;,
+      &quot;virtualMachine&quot;: &quot;A String&quot;, # The URI of the virtual machine resource
+    },
+  ],
+  &quot;linkedVpnTunnels&quot;: [ # The URIs of linked VPN tunnel resources
+    &quot;A String&quot;,
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The name of a Spoke resource.
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current lifecycle state of this Hub.
+  &quot;uniqueId&quot;: &quot;A String&quot;, # Output only. Google-generated UUID for this resource. This is unique across all Spoke resources. If a Spoke resource is deleted and another with the same name is created, it gets a different unique_id.
+  &quot;updateTime&quot;: &quot;A String&quot;, # The time when the Spoke was updated.
+}
+
+  requestId: string, Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and t he request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
+  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the Spoke resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
+  <pre>Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.
+    &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+      { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+      { # Associates `members` with a `role`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+    &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+    { # Associates `members` with a `role`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+      },
+      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
+  <pre>Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+Args:
+  resource: string, REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/notebooks_v1.projects.locations.executions.html b/docs/dyn/notebooks_v1.projects.locations.executions.html
index 1b58dd2..03695c7 100644
--- a/docs/dyn/notebooks_v1.projects.locations.executions.html
+++ b/docs/dyn/notebooks_v1.projects.locations.executions.html
@@ -126,6 +126,7 @@
     &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
     &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
     &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
   },
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the execute. Format: `projects/{project_id}/locations/{location}/execution/{execution_id}
   &quot;outputNotebookFile&quot;: &quot;A String&quot;, # Output notebook file generated by this execution
@@ -231,6 +232,7 @@
     &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
     &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
     &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
   },
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the execute. Format: `projects/{project_id}/locations/{location}/execution/{execution_id}
   &quot;outputNotebookFile&quot;: &quot;A String&quot;, # Output notebook file generated by this execution
@@ -278,6 +280,7 @@
         &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
         &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
         &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+        &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
       },
       &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the execute. Format: `projects/{project_id}/locations/{location}/execution/{execution_id}
       &quot;outputNotebookFile&quot;: &quot;A String&quot;, # Output notebook file generated by this execution
diff --git a/docs/dyn/notebooks_v1.projects.locations.html b/docs/dyn/notebooks_v1.projects.locations.html
index dd2ab8a..484cdd5 100644
--- a/docs/dyn/notebooks_v1.projects.locations.html
+++ b/docs/dyn/notebooks_v1.projects.locations.html
@@ -95,6 +95,11 @@
 <p class="firstline">Returns the operations Resource.</p>
 
 <p class="toc_element">
+  <code><a href="notebooks_v1.projects.locations.runtimes.html">runtimes()</a></code>
+</p>
+<p class="firstline">Returns the runtimes Resource.</p>
+
+<p class="toc_element">
   <code><a href="notebooks_v1.projects.locations.schedules.html">schedules()</a></code>
 </p>
 <p class="firstline">Returns the schedules Resource.</p>
@@ -150,9 +155,9 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/notebooks_v1.projects.locations.instances.html b/docs/dyn/notebooks_v1.projects.locations.instances.html
index e575dea..ddbe5d7 100644
--- a/docs/dyn/notebooks_v1.projects.locations.instances.html
+++ b/docs/dyn/notebooks_v1.projects.locations.instances.html
@@ -111,6 +111,9 @@
   <code><a href="#reset">reset(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Resets a notebook instance.</p>
 <p class="toc_element">
+  <code><a href="#rollback">rollback(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Rollbacks a notebook instance to the previous version.</p>
+<p class="toc_element">
   <code><a href="#setAccelerator">setAccelerator(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the guest accelerators of a single Instance.</p>
 <p class="toc_element">
@@ -132,6 +135,9 @@
   <code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
 <p class="toc_element">
+  <code><a href="#updateShieldedInstanceConfig">updateShieldedInstanceConfig(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Shielded instance configuration of a single Instance.</p>
+<p class="toc_element">
   <code><a href="#upgrade">upgrade(name, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Upgrades a notebook instance to the latest version.</p>
 <p class="toc_element">
@@ -204,6 +210,7 @@
   },
   &quot;name&quot;: &quot;A String&quot;, # Output only. The name of this notebook instance. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`
   &quot;network&quot;: &quot;A String&quot;, # The name of the VPC that this instance is in. Format: `projects/{project_id}/global/networks/{network_id}`
+  &quot;nicType&quot;: &quot;A String&quot;, # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
   &quot;noProxyAccess&quot;: True or False, # If true, the notebook instance will not register with the proxy.
   &quot;noPublicIp&quot;: True or False, # If true, no public IP will be assigned to this instance.
   &quot;noRemoveDataDisk&quot;: True or False, # Input only. If true, the data disk will not be auto deleted when deleting the instance.
@@ -376,6 +383,7 @@
   },
   &quot;name&quot;: &quot;A String&quot;, # Output only. The name of this notebook instance. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`
   &quot;network&quot;: &quot;A String&quot;, # The name of the VPC that this instance is in. Format: `projects/{project_id}/global/networks/{network_id}`
+  &quot;nicType&quot;: &quot;A String&quot;, # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
   &quot;noProxyAccess&quot;: True or False, # If true, the notebook instance will not register with the proxy.
   &quot;noPublicIp&quot;: True or False, # If true, no public IP will be assigned to this instance.
   &quot;noRemoveDataDisk&quot;: True or False, # Input only. If true, the data disk will not be auto deleted when deleting the instance.
@@ -567,6 +575,7 @@
       },
       &quot;name&quot;: &quot;A String&quot;, # Output only. The name of this notebook instance. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`
       &quot;network&quot;: &quot;A String&quot;, # The name of the VPC that this instance is in. Format: `projects/{project_id}/global/networks/{network_id}`
+      &quot;nicType&quot;: &quot;A String&quot;, # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
       &quot;noProxyAccess&quot;: True or False, # If true, the notebook instance will not register with the proxy.
       &quot;noPublicIp&quot;: True or False, # If true, no public IP will be assigned to this instance.
       &quot;noRemoveDataDisk&quot;: True or False, # Input only. If true, the data disk will not be auto deleted when deleting the instance.
@@ -758,6 +767,48 @@
 </div>
 
 <div class="method">
+    <code class="details" id="rollback">rollback(name, body=None, x__xgafv=None)</code>
+  <pre>Rollbacks a notebook instance to the previous version.
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for rollbacking a notebook instance
+  &quot;targetSnapshot&quot;: &quot;A String&quot;, # Required. The snapshot for rollback. Example: &quot;projects/test-project/global/snapshots/krwlzipynril&quot;.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
     <code class="details" id="setAccelerator">setAccelerator(name, body=None, x__xgafv=None)</code>
   <pre>Updates the guest accelerators of a single Instance.
 
@@ -1057,6 +1108,52 @@
 </div>
 
 <div class="method">
+    <code class="details" id="updateShieldedInstanceConfig">updateShieldedInstanceConfig(name, body=None, x__xgafv=None)</code>
+  <pre>Updates the Shielded instance configuration of a single Instance.
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for updating the Shielded Instance config for a notebook instance. You can only use this method on a stopped instance
+  &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # ShieldedInstance configuration to be updated.
+    &quot;enableIntegrityMonitoring&quot;: True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default.
+    &quot;enableSecureBoot&quot;: True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default.
+    &quot;enableVtpm&quot;: True or False, # Defines whether the instance has the vTPM enabled. Enabled by default.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
     <code class="details" id="upgrade">upgrade(name, body=None, x__xgafv=None)</code>
   <pre>Upgrades a notebook instance to the latest version.
 
diff --git a/docs/dyn/notebooks_v1.projects.locations.runtimes.html b/docs/dyn/notebooks_v1.projects.locations.runtimes.html
new file mode 100644
index 0000000..2b5d6cd
--- /dev/null
+++ b/docs/dyn/notebooks_v1.projects.locations.runtimes.html
@@ -0,0 +1,701 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="notebooks_v1.html">Notebooks API</a> . <a href="notebooks_v1.projects.html">projects</a> . <a href="notebooks_v1.projects.locations.html">locations</a> . <a href="notebooks_v1.projects.locations.runtimes.html">runtimes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, runtimeId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new Runtime in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single Runtime.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single Runtime. The location must be a regional endpoint rather than zonal.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists Runtimes in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#reset">reset(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Resets a Managed Notebook Runtime.</p>
+<p class="toc_element">
+  <code><a href="#start">start(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts a Managed Notebook Runtime. Perform "Start" on GPU instances; "Resume" on CPU instances See: https://cloud.google.com/compute/docs/instances/stop-start-instance https://cloud.google.com/compute/docs/instances/suspend-resume-instance</p>
+<p class="toc_element">
+  <code><a href="#stop">stop(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Stops a Managed Notebook Runtime. Perform "Stop" on GPU instances; "Suspend" on CPU instances See: https://cloud.google.com/compute/docs/instances/stop-start-instance https://cloud.google.com/compute/docs/instances/suspend-resume-instance</p>
+<p class="toc_element">
+  <code><a href="#switch">switch(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Switch a Managed Notebook Runtime.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, runtimeId=None, x__xgafv=None)</code>
+  <pre>Creates a new Runtime in a given project and location.
+
+Args:
+  parent: string, Required. Format: `parent=projects/{project_id}/locations/{location}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The definition of a Runtime for a managed notebook instance.
+  &quot;accessConfig&quot;: { # Specifies the login configuration for Runtime # The config settings for accessing runtime.
+    &quot;accessType&quot;: &quot;A String&quot;, # The type of access mode this instance.
+    &quot;proxyUri&quot;: &quot;A String&quot;, # Output only. The proxy endpoint that is used to access the runtime.
+    &quot;runtimeOwner&quot;: &quot;A String&quot;, # The owner of this runtime after creation. Format: `alias@example.com` Currently supports one owner only.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Runtime creation time.
+  &quot;healthState&quot;: &quot;A String&quot;, # Output only. Runtime health_state.
+  &quot;metrics&quot;: { # Contains runtime daemon metrics, such as OS and kernels and sessions stats. # Output only. Contains Runtime daemon metrics such as Service status and JupyterLab stats.
+    &quot;systemMetrics&quot;: { # Output only. The system metrics.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}`
+  &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true # The config settings for software inside the runtime.
+    &quot;customGpuDriverPath&quot;: &quot;A String&quot;, # Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we&#x27;ll automatically choose from official GPU drivers.
+    &quot;enableHealthMonitoring&quot;: True or False, # Verifies core internal services are running. Default: True
+    &quot;idleShutdown&quot;: True or False, # Runtime will automatically shutdown after idle_shutdown_time. Default: False
+    &quot;idleShutdownTimeout&quot;: 42, # Time in minutes to wait before shuting down runtime. Default: 90 minutes
+    &quot;installGpuDriver&quot;: True or False, # Install Nvidia Driver automatically.
+    &quot;notebookUpgradeSchedule&quot;: &quot;A String&quot;, # Cron expression in UTC timezone, used to schedule instance auto upgrade. Please follow the [cron format](https://en.wikipedia.org/wiki/Cron).
+    &quot;postStartupScript&quot;: &quot;A String&quot;, # Path to a Bash script that automatically runs after a notebook instance fully boots up. The path must be a URL or Cloud Storage path (gs://path-to-file/file-name).
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. Runtime state.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Runtime update time.
+  &quot;virtualMachine&quot;: { # Runtime using Virtual Machine for computing. # Use a Compute Engine VM image to start the managed notebook instance.
+    &quot;instanceId&quot;: &quot;A String&quot;, # Output only. The unique identifier of the Managed Compute Engine instance.
+    &quot;instanceName&quot;: &quot;A String&quot;, # Output only. The user-friendly name of the Managed Compute Engine instance.
+    &quot;virtualMachineConfig&quot;: { # The config settings for virtual machine. # Virtual Machine configuration settings.
+      &quot;acceleratorConfig&quot;: { # Definition of the types of hardware accelerators that can be used. Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100` # Optional. The Compute Engine accelerator configuration for this runtime.
+        &quot;coreCount&quot;: &quot;A String&quot;, # Count of cores of this accelerator.
+        &quot;type&quot;: &quot;A String&quot;, # Accelerator model.
+      },
+      &quot;containerImages&quot;: [ # Optional. Use a list of container images to start the notebook instance.
+        { # Definition of a container image for starting a notebook instance with the environment installed in a container.
+          &quot;repository&quot;: &quot;A String&quot;, # Required. The path to the container image repository. For example: `gcr.io/{project_id}/{image_name}`
+          &quot;tag&quot;: &quot;A String&quot;, # The tag of the container image. If not specified, this defaults to the latest tag.
+        },
+      ],
+      &quot;dataDisk&quot;: { # An Local attached disk resource. # Required. Data disk option configuration settings.
+        &quot;autoDelete&quot;: True or False, # Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+        &quot;boot&quot;: True or False, # Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+        &quot;deviceName&quot;: &quot;A String&quot;, # Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+        &quot;guestOsFeatures&quot;: [ # Output only. Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.
+          { # A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk.
+            &quot;type&quot;: &quot;A String&quot;, # The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS
+          },
+        ],
+        &quot;index&quot;: 42, # Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.
+        &quot;initializeParams&quot;: { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Provide this property when creating the disk.
+          &quot;diskName&quot;: &quot;A String&quot;, # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated.
+          &quot;diskSizeGb&quot;: &quot;A String&quot;, # Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB.
+          &quot;diskType&quot;: &quot;A String&quot;, # Input only. The type of the boot disk attached to this instance, defaults to standard persistent disk (`PD_STANDARD`).
+          &quot;labels&quot;: { # Optional. Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+        },
+        &quot;interface&quot;: &quot;A String&quot;, # Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI
+        &quot;kind&quot;: &quot;A String&quot;, # Output only. Type of the resource. Always compute#attachedDisk for attached disks.
+        &quot;licenses&quot;: [ # Output only. [Output Only] Any valid publicly visible licenses.
+          &quot;A String&quot;,
+        ],
+        &quot;mode&quot;: &quot;A String&quot;, # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: READ_ONLY READ_WRITE
+        &quot;source&quot;: &quot;A String&quot;, # Specifies a valid partial or full URL to an existing Persistent Disk resource.
+        &quot;type&quot;: &quot;A String&quot;, # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Valid values: PERSISTENT SCRATCH
+      },
+      &quot;encryptionConfig&quot;: { # Represents a custom encryption key configuration that can be applied to a resource. This will encrypt all disks in Virtual Machine. # Optional. Encryption settings for virtual machine data disk.
+        &quot;kmsKey&quot;: &quot;A String&quot;, # The Cloud KMS resource identifier of the customer-managed encryption key used to protect a resource, such as a disks. It has the following format: `projects/{PROJECT_ID}/locations/{REGION}/keyRings/{KEY_RING_NAME}/cryptoKeys/{KEY_NAME}`
+      },
+      &quot;guestAttributes&quot;: { # Output only. The Compute Engine guest attributes. (see [Project and instance guest attributes](https://cloud.google.com/compute/docs/storing-retrieving-metadata#guest_attributes)).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;internalIpOnly&quot;: True or False, # Optional. If true, runtime will only have internal IP addresses. By default, runtimes are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each vm. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all dependencies must be configured to be accessible without external IP addresses.
+      &quot;labels&quot;: { # Optional. The labels to associate with this runtime. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;machineType&quot;: &quot;A String&quot;, # Required. The Compute Engine machine type used for runtimes. Short name is valid. Examples: * `n1-standard-2` * `e2-standard-8`
+      &quot;metadata&quot;: { # Optional. The Compute Engine metadata entries to add to virtual machine. (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;network&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the &quot;default&quot; network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network &amp; subnet are empty) * Consumer Project VPC (network &amp; subnet are required). Requires configuring Private Service Access. * Shared VPC (network &amp; subnet are required). Requires configuring Private Service Access.
+      &quot;nicType&quot;: &quot;A String&quot;, # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
+      &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # Optional. Shielded VM Instance configuration settings.
+        &quot;enableIntegrityMonitoring&quot;: True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default.
+        &quot;enableSecureBoot&quot;: True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default.
+        &quot;enableVtpm&quot;: True or False, # Defines whether the instance has the vTPM enabled. Enabled by default.
+      },
+      &quot;subnet&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network. A full URL or partial URI are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0`
+      &quot;tags&quot;: [ # Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
+        &quot;A String&quot;,
+      ],
+      &quot;zone&quot;: &quot;A String&quot;, # Output only. The zone where the virtual machine is located. If using regional request, the notebooks service will pick a location in the corresponding runtime region. On a get request, zone will always be present. Example: * `us-central1-b`
+    },
+  },
+}
+
+  runtimeId: string, Required. User-defined unique ID of this Runtime.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a single Runtime.
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single Runtime. The location must be a regional endpoint rather than zonal.
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The definition of a Runtime for a managed notebook instance.
+  &quot;accessConfig&quot;: { # Specifies the login configuration for Runtime # The config settings for accessing runtime.
+    &quot;accessType&quot;: &quot;A String&quot;, # The type of access mode this instance.
+    &quot;proxyUri&quot;: &quot;A String&quot;, # Output only. The proxy endpoint that is used to access the runtime.
+    &quot;runtimeOwner&quot;: &quot;A String&quot;, # The owner of this runtime after creation. Format: `alias@example.com` Currently supports one owner only.
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Runtime creation time.
+  &quot;healthState&quot;: &quot;A String&quot;, # Output only. Runtime health_state.
+  &quot;metrics&quot;: { # Contains runtime daemon metrics, such as OS and kernels and sessions stats. # Output only. Contains Runtime daemon metrics such as Service status and JupyterLab stats.
+    &quot;systemMetrics&quot;: { # Output only. The system metrics.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}`
+  &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true # The config settings for software inside the runtime.
+    &quot;customGpuDriverPath&quot;: &quot;A String&quot;, # Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we&#x27;ll automatically choose from official GPU drivers.
+    &quot;enableHealthMonitoring&quot;: True or False, # Verifies core internal services are running. Default: True
+    &quot;idleShutdown&quot;: True or False, # Runtime will automatically shutdown after idle_shutdown_time. Default: False
+    &quot;idleShutdownTimeout&quot;: 42, # Time in minutes to wait before shuting down runtime. Default: 90 minutes
+    &quot;installGpuDriver&quot;: True or False, # Install Nvidia Driver automatically.
+    &quot;notebookUpgradeSchedule&quot;: &quot;A String&quot;, # Cron expression in UTC timezone, used to schedule instance auto upgrade. Please follow the [cron format](https://en.wikipedia.org/wiki/Cron).
+    &quot;postStartupScript&quot;: &quot;A String&quot;, # Path to a Bash script that automatically runs after a notebook instance fully boots up. The path must be a URL or Cloud Storage path (gs://path-to-file/file-name).
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. Runtime state.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Runtime update time.
+  &quot;virtualMachine&quot;: { # Runtime using Virtual Machine for computing. # Use a Compute Engine VM image to start the managed notebook instance.
+    &quot;instanceId&quot;: &quot;A String&quot;, # Output only. The unique identifier of the Managed Compute Engine instance.
+    &quot;instanceName&quot;: &quot;A String&quot;, # Output only. The user-friendly name of the Managed Compute Engine instance.
+    &quot;virtualMachineConfig&quot;: { # The config settings for virtual machine. # Virtual Machine configuration settings.
+      &quot;acceleratorConfig&quot;: { # Definition of the types of hardware accelerators that can be used. Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100` # Optional. The Compute Engine accelerator configuration for this runtime.
+        &quot;coreCount&quot;: &quot;A String&quot;, # Count of cores of this accelerator.
+        &quot;type&quot;: &quot;A String&quot;, # Accelerator model.
+      },
+      &quot;containerImages&quot;: [ # Optional. Use a list of container images to start the notebook instance.
+        { # Definition of a container image for starting a notebook instance with the environment installed in a container.
+          &quot;repository&quot;: &quot;A String&quot;, # Required. The path to the container image repository. For example: `gcr.io/{project_id}/{image_name}`
+          &quot;tag&quot;: &quot;A String&quot;, # The tag of the container image. If not specified, this defaults to the latest tag.
+        },
+      ],
+      &quot;dataDisk&quot;: { # An Local attached disk resource. # Required. Data disk option configuration settings.
+        &quot;autoDelete&quot;: True or False, # Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+        &quot;boot&quot;: True or False, # Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+        &quot;deviceName&quot;: &quot;A String&quot;, # Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+        &quot;guestOsFeatures&quot;: [ # Output only. Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.
+          { # A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk.
+            &quot;type&quot;: &quot;A String&quot;, # The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS
+          },
+        ],
+        &quot;index&quot;: 42, # Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.
+        &quot;initializeParams&quot;: { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Provide this property when creating the disk.
+          &quot;diskName&quot;: &quot;A String&quot;, # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated.
+          &quot;diskSizeGb&quot;: &quot;A String&quot;, # Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB.
+          &quot;diskType&quot;: &quot;A String&quot;, # Input only. The type of the boot disk attached to this instance, defaults to standard persistent disk (`PD_STANDARD`).
+          &quot;labels&quot;: { # Optional. Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+        },
+        &quot;interface&quot;: &quot;A String&quot;, # Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI
+        &quot;kind&quot;: &quot;A String&quot;, # Output only. Type of the resource. Always compute#attachedDisk for attached disks.
+        &quot;licenses&quot;: [ # Output only. [Output Only] Any valid publicly visible licenses.
+          &quot;A String&quot;,
+        ],
+        &quot;mode&quot;: &quot;A String&quot;, # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: READ_ONLY READ_WRITE
+        &quot;source&quot;: &quot;A String&quot;, # Specifies a valid partial or full URL to an existing Persistent Disk resource.
+        &quot;type&quot;: &quot;A String&quot;, # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Valid values: PERSISTENT SCRATCH
+      },
+      &quot;encryptionConfig&quot;: { # Represents a custom encryption key configuration that can be applied to a resource. This will encrypt all disks in Virtual Machine. # Optional. Encryption settings for virtual machine data disk.
+        &quot;kmsKey&quot;: &quot;A String&quot;, # The Cloud KMS resource identifier of the customer-managed encryption key used to protect a resource, such as a disks. It has the following format: `projects/{PROJECT_ID}/locations/{REGION}/keyRings/{KEY_RING_NAME}/cryptoKeys/{KEY_NAME}`
+      },
+      &quot;guestAttributes&quot;: { # Output only. The Compute Engine guest attributes. (see [Project and instance guest attributes](https://cloud.google.com/compute/docs/storing-retrieving-metadata#guest_attributes)).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;internalIpOnly&quot;: True or False, # Optional. If true, runtime will only have internal IP addresses. By default, runtimes are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each vm. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all dependencies must be configured to be accessible without external IP addresses.
+      &quot;labels&quot;: { # Optional. The labels to associate with this runtime. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;machineType&quot;: &quot;A String&quot;, # Required. The Compute Engine machine type used for runtimes. Short name is valid. Examples: * `n1-standard-2` * `e2-standard-8`
+      &quot;metadata&quot;: { # Optional. The Compute Engine metadata entries to add to virtual machine. (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;network&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the &quot;default&quot; network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network &amp; subnet are empty) * Consumer Project VPC (network &amp; subnet are required). Requires configuring Private Service Access. * Shared VPC (network &amp; subnet are required). Requires configuring Private Service Access.
+      &quot;nicType&quot;: &quot;A String&quot;, # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
+      &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # Optional. Shielded VM Instance configuration settings.
+        &quot;enableIntegrityMonitoring&quot;: True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default.
+        &quot;enableSecureBoot&quot;: True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default.
+        &quot;enableVtpm&quot;: True or False, # Defines whether the instance has the vTPM enabled. Enabled by default.
+      },
+      &quot;subnet&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network. A full URL or partial URI are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0`
+      &quot;tags&quot;: [ # Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
+        &quot;A String&quot;,
+      ],
+      &quot;zone&quot;: &quot;A String&quot;, # Output only. The zone where the virtual machine is located. If using regional request, the notebooks service will pick a location in the corresponding runtime region. On a get request, zone will always be present. Example: * `us-central1-b`
+    },
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists Runtimes in a given project and location.
+
+Args:
+  parent: string, Required. Format: `parent=projects/{project_id}/locations/{location}` (required)
+  pageSize: integer, Maximum return size of the list call.
+  pageToken: string, A previous returned page token that can be used to continue listing from the last result.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for listing Managed Notebook Runtimes.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token that can be used to continue listing from the last result in the next list call.
+  &quot;runtimes&quot;: [ # A list of returned Runtimes.
+    { # The definition of a Runtime for a managed notebook instance.
+      &quot;accessConfig&quot;: { # Specifies the login configuration for Runtime # The config settings for accessing runtime.
+        &quot;accessType&quot;: &quot;A String&quot;, # The type of access mode this instance.
+        &quot;proxyUri&quot;: &quot;A String&quot;, # Output only. The proxy endpoint that is used to access the runtime.
+        &quot;runtimeOwner&quot;: &quot;A String&quot;, # The owner of this runtime after creation. Format: `alias@example.com` Currently supports one owner only.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Runtime creation time.
+      &quot;healthState&quot;: &quot;A String&quot;, # Output only. Runtime health_state.
+      &quot;metrics&quot;: { # Contains runtime daemon metrics, such as OS and kernels and sessions stats. # Output only. Contains Runtime daemon metrics such as Service status and JupyterLab stats.
+        &quot;systemMetrics&quot;: { # Output only. The system metrics.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtime}`
+      &quot;softwareConfig&quot;: { # Specifies the selection and config of software inside the runtime. / The properties to set on runtime. Properties keys are specified in `key:value` format, for example: * idle_shutdown: idle_shutdown=true * idle_shutdown_timeout: idle_shutdown_timeout=180 * report-system-health: report-system-health=true # The config settings for software inside the runtime.
+        &quot;customGpuDriverPath&quot;: &quot;A String&quot;, # Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we&#x27;ll automatically choose from official GPU drivers.
+        &quot;enableHealthMonitoring&quot;: True or False, # Verifies core internal services are running. Default: True
+        &quot;idleShutdown&quot;: True or False, # Runtime will automatically shutdown after idle_shutdown_time. Default: False
+        &quot;idleShutdownTimeout&quot;: 42, # Time in minutes to wait before shuting down runtime. Default: 90 minutes
+        &quot;installGpuDriver&quot;: True or False, # Install Nvidia Driver automatically.
+        &quot;notebookUpgradeSchedule&quot;: &quot;A String&quot;, # Cron expression in UTC timezone, used to schedule instance auto upgrade. Please follow the [cron format](https://en.wikipedia.org/wiki/Cron).
+        &quot;postStartupScript&quot;: &quot;A String&quot;, # Path to a Bash script that automatically runs after a notebook instance fully boots up. The path must be a URL or Cloud Storage path (gs://path-to-file/file-name).
+      },
+      &quot;state&quot;: &quot;A String&quot;, # Output only. Runtime state.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Runtime update time.
+      &quot;virtualMachine&quot;: { # Runtime using Virtual Machine for computing. # Use a Compute Engine VM image to start the managed notebook instance.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Output only. The unique identifier of the Managed Compute Engine instance.
+        &quot;instanceName&quot;: &quot;A String&quot;, # Output only. The user-friendly name of the Managed Compute Engine instance.
+        &quot;virtualMachineConfig&quot;: { # The config settings for virtual machine. # Virtual Machine configuration settings.
+          &quot;acceleratorConfig&quot;: { # Definition of the types of hardware accelerators that can be used. Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100` # Optional. The Compute Engine accelerator configuration for this runtime.
+            &quot;coreCount&quot;: &quot;A String&quot;, # Count of cores of this accelerator.
+            &quot;type&quot;: &quot;A String&quot;, # Accelerator model.
+          },
+          &quot;containerImages&quot;: [ # Optional. Use a list of container images to start the notebook instance.
+            { # Definition of a container image for starting a notebook instance with the environment installed in a container.
+              &quot;repository&quot;: &quot;A String&quot;, # Required. The path to the container image repository. For example: `gcr.io/{project_id}/{image_name}`
+              &quot;tag&quot;: &quot;A String&quot;, # The tag of the container image. If not specified, this defaults to the latest tag.
+            },
+          ],
+          &quot;dataDisk&quot;: { # An Local attached disk resource. # Required. Data disk option configuration settings.
+            &quot;autoDelete&quot;: True or False, # Output only. Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).
+            &quot;boot&quot;: True or False, # Output only. Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
+            &quot;deviceName&quot;: &quot;A String&quot;, # Output only. Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* tree of a Linux operating system running within the instance. This name can be used to reference the device for mounting, resizing, and so on, from within the instance. If not specified, the server chooses a default device name to apply to this disk, in the form persistent-disk-x, where x is a number assigned by Google Compute Engine. This field is only applicable for persistent disks.
+            &quot;guestOsFeatures&quot;: [ # Output only. Indicates a list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.
+              { # A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options. Guest OS features for boot disk.
+                &quot;type&quot;: &quot;A String&quot;, # The ID of a supported feature. Read Enabling guest operating system features to see a list of available options. Valid values: FEATURE_TYPE_UNSPECIFIED MULTI_IP_SUBNET SECURE_BOOT UEFI_COMPATIBLE VIRTIO_SCSI_MULTIQUEUE WINDOWS
+              },
+            ],
+            &quot;index&quot;: 42, # Output only. [Output Only] A zero-based index to this disk, where 0 is reserved for the boot disk. If you have many disks attached to an instance, each disk would have a unique index number.
+            &quot;initializeParams&quot;: { # [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new runtime. This property is mutually exclusive with the source property; you can only define one or the other, but not both. # Input only. [Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Provide this property when creating the disk.
+              &quot;diskName&quot;: &quot;A String&quot;, # Optional. Specifies the disk name. If not specified, the default is to use the name of the instance. If the disk with the instance name exists already in the given zone/region, a new name will be automatically generated.
+              &quot;diskSizeGb&quot;: &quot;A String&quot;, # Optional. Specifies the size of the disk in base-2 GB. If not specified, the disk will be the same size as the image (usually 10GB). If specified, the size must be equal to or larger than 10GB. Default 100 GB.
+              &quot;diskType&quot;: &quot;A String&quot;, # Input only. The type of the boot disk attached to this instance, defaults to standard persistent disk (`PD_STANDARD`).
+              &quot;labels&quot;: { # Optional. Labels to apply to this disk. These can be later modified by the disks.setLabels method. This field is only applicable for persistent disks.
+                &quot;a_key&quot;: &quot;A String&quot;,
+              },
+            },
+            &quot;interface&quot;: &quot;A String&quot;, # Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI and the request will fail if you attempt to attach a persistent disk in any other format than SCSI. Local SSDs can use either NVME or SCSI. For performance characteristics of SCSI over NVMe, see Local SSD performance. Valid values: NVME SCSI
+            &quot;kind&quot;: &quot;A String&quot;, # Output only. Type of the resource. Always compute#attachedDisk for attached disks.
+            &quot;licenses&quot;: [ # Output only. [Output Only] Any valid publicly visible licenses.
+              &quot;A String&quot;,
+            ],
+            &quot;mode&quot;: &quot;A String&quot;, # The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, the default is to attach the disk in READ_WRITE mode. Valid values: READ_ONLY READ_WRITE
+            &quot;source&quot;: &quot;A String&quot;, # Specifies a valid partial or full URL to an existing Persistent Disk resource.
+            &quot;type&quot;: &quot;A String&quot;, # Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, the default is PERSISTENT. Valid values: PERSISTENT SCRATCH
+          },
+          &quot;encryptionConfig&quot;: { # Represents a custom encryption key configuration that can be applied to a resource. This will encrypt all disks in Virtual Machine. # Optional. Encryption settings for virtual machine data disk.
+            &quot;kmsKey&quot;: &quot;A String&quot;, # The Cloud KMS resource identifier of the customer-managed encryption key used to protect a resource, such as a disks. It has the following format: `projects/{PROJECT_ID}/locations/{REGION}/keyRings/{KEY_RING_NAME}/cryptoKeys/{KEY_NAME}`
+          },
+          &quot;guestAttributes&quot;: { # Output only. The Compute Engine guest attributes. (see [Project and instance guest attributes](https://cloud.google.com/compute/docs/storing-retrieving-metadata#guest_attributes)).
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;internalIpOnly&quot;: True or False, # Optional. If true, runtime will only have internal IP addresses. By default, runtimes are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each vm. This `internal_ip_only` restriction can only be enabled for subnetwork enabled networks, and all dependencies must be configured to be accessible without external IP addresses.
+          &quot;labels&quot;: { # Optional. The labels to associate with this runtime. Label **keys** must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63 characters, and must conform to [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be associated with a cluster.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;machineType&quot;: &quot;A String&quot;, # Required. The Compute Engine machine type used for runtimes. Short name is valid. Examples: * `n1-standard-2` * `e2-standard-8`
+          &quot;metadata&quot;: { # Optional. The Compute Engine metadata entries to add to virtual machine. (see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;network&quot;: &quot;A String&quot;, # Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the &quot;default&quot; network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network &amp; subnet are empty) * Consumer Project VPC (network &amp; subnet are required). Requires configuring Private Service Access. * Shared VPC (network &amp; subnet are required). Requires configuring Private Service Access.
+          &quot;nicType&quot;: &quot;A String&quot;, # Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
+          &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. Check [Images using supported Shielded VM features] Not all combinations are valid. # Optional. Shielded VM Instance configuration settings.
+            &quot;enableIntegrityMonitoring&quot;: True or False, # Defines whether the instance has integrity monitoring enabled. Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. Enabled by default.
+            &quot;enableSecureBoot&quot;: True or False, # Defines whether the instance has Secure Boot enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails. Disabled by default.
+            &quot;enableVtpm&quot;: True or False, # Defines whether the instance has the vTPM enabled. Enabled by default.
+          },
+          &quot;subnet&quot;: &quot;A String&quot;, # Optional. The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network. A full URL or partial URI are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/us-east1/subnetworks/sub0` * `projects/[project_id]/regions/us-east1/subnetworks/sub0`
+          &quot;tags&quot;: [ # Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
+            &quot;A String&quot;,
+          ],
+          &quot;zone&quot;: &quot;A String&quot;, # Output only. The zone where the virtual machine is located. If using regional request, the notebooks service will pick a location in the corresponding runtime region. On a get request, zone will always be present. Example: * `us-central1-b`
+        },
+      },
+    },
+  ],
+  &quot;unreachable&quot;: [ # Locations that could not be reached. For example, [&#x27;us-west1&#x27;, &#x27;us-central1&#x27;]. A ListRuntimesResponse will only contain either runtimes or unreachables,
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="reset">reset(name, body=None, x__xgafv=None)</code>
+  <pre>Resets a Managed Notebook Runtime.
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for reseting a Managed Notebook Runtime.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="start">start(name, body=None, x__xgafv=None)</code>
+  <pre>Starts a Managed Notebook Runtime. Perform &quot;Start&quot; on GPU instances; &quot;Resume&quot; on CPU instances See: https://cloud.google.com/compute/docs/instances/stop-start-instance https://cloud.google.com/compute/docs/instances/suspend-resume-instance
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for starting a Managed Notebook Runtime.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="stop">stop(name, body=None, x__xgafv=None)</code>
+  <pre>Stops a Managed Notebook Runtime. Perform &quot;Stop&quot; on GPU instances; &quot;Suspend&quot; on CPU instances See: https://cloud.google.com/compute/docs/instances/stop-start-instance https://cloud.google.com/compute/docs/instances/suspend-resume-instance
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for stopping a Managed Notebook Runtime.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="switch">switch(name, body=None, x__xgafv=None)</code>
+  <pre>Switch a Managed Notebook Runtime.
+
+Args:
+  name: string, Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtime_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for switching a Managed Notebook Runtime.
+  &quot;acceleratorConfig&quot;: { # Definition of the types of hardware accelerators that can be used. Definition of the types of hardware accelerators that can be used. See [Compute Engine AcceleratorTypes](https://cloud.google.com/compute/docs/reference/beta/acceleratorTypes). Examples: * `nvidia-tesla-k80` * `nvidia-tesla-p100` * `nvidia-tesla-v100` * `nvidia-tesla-p4` * `nvidia-tesla-t4` * `nvidia-tesla-a100` # accelerator config.
+    &quot;coreCount&quot;: &quot;A String&quot;, # Count of cores of this accelerator.
+    &quot;type&quot;: &quot;A String&quot;, # Accelerator model.
+  },
+  &quot;machineType&quot;: &quot;A String&quot;, # machine type.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/notebooks_v1.projects.locations.schedules.html b/docs/dyn/notebooks_v1.projects.locations.schedules.html
index 72c0253..35bf899 100644
--- a/docs/dyn/notebooks_v1.projects.locations.schedules.html
+++ b/docs/dyn/notebooks_v1.projects.locations.schedules.html
@@ -130,6 +130,7 @@
     &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
     &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
     &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
   },
   &quot;name&quot;: &quot;A String&quot;, # Output only. The name of this schedule. Format: `projects/{project_id}/locations/{location}/schedules/{schedule_id}`
   &quot;recentExecutions&quot;: [ # Output only. The most recent execution names triggered from this schedule and their corresponding states.
@@ -152,6 +153,7 @@
         &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
         &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
         &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+        &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
       },
       &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the execute. Format: `projects/{project_id}/locations/{location}/execution/{execution_id}
       &quot;outputNotebookFile&quot;: &quot;A String&quot;, # Output notebook file generated by this execution
@@ -263,6 +265,7 @@
     &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
     &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
     &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+    &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
   },
   &quot;name&quot;: &quot;A String&quot;, # Output only. The name of this schedule. Format: `projects/{project_id}/locations/{location}/schedules/{schedule_id}`
   &quot;recentExecutions&quot;: [ # Output only. The most recent execution names triggered from this schedule and their corresponding states.
@@ -285,6 +288,7 @@
         &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
         &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
         &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+        &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
       },
       &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the execute. Format: `projects/{project_id}/locations/{location}/execution/{execution_id}
       &quot;outputNotebookFile&quot;: &quot;A String&quot;, # Output notebook file generated by this execution
@@ -339,6 +343,7 @@
         &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
         &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
         &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+        &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
       },
       &quot;name&quot;: &quot;A String&quot;, # Output only. The name of this schedule. Format: `projects/{project_id}/locations/{location}/schedules/{schedule_id}`
       &quot;recentExecutions&quot;: [ # Output only. The most recent execution names triggered from this schedule and their corresponding states.
@@ -361,6 +366,7 @@
             &quot;parameters&quot;: &quot;A String&quot;, # Parameters used within the &#x27;input_notebook_file&#x27; notebook.
             &quot;paramsYamlFile&quot;: &quot;A String&quot;, # Parameters to be overridden in the notebook during execution. Ref https://papermill.readthedocs.io/en/latest/usage-parameterize.html on how to specifying parameters in the input notebook and pass them here in an YAML file. Ex: gs://notebook_user/scheduled_notebooks/sentiment_notebook_params.yaml
             &quot;scaleTier&quot;: &quot;A String&quot;, # Required. Scale tier of the hardware used for notebook execution.
+            &quot;serviceAccount&quot;: &quot;A String&quot;, # The email address of a service account to use when running the execution. You must have the `iam.serviceAccounts.actAs` permission for the specified service account.
           },
           &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the execute. Format: `projects/{project_id}/locations/{location}/execution/{execution_id}
           &quot;outputNotebookFile&quot;: &quot;A String&quot;, # Output notebook file generated by this execution
diff --git a/docs/dyn/ondemandscanning_v1.html b/docs/dyn/ondemandscanning_v1.html
new file mode 100644
index 0000000..2e42ef3
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1.html">On-Demand Scanning API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1.projects.html b/docs/dyn/ondemandscanning_v1.projects.html
new file mode 100644
index 0000000..2924f11
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1.projects.locations.html b/docs/dyn/ondemandscanning_v1.projects.locations.html
new file mode 100644
index 0000000..c747276
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1.projects.locations.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1.projects.html">projects</a> . <a href="ondemandscanning_v1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1.projects.locations.scans.html">scans()</a></code>
+</p>
+<p class="firstline">Returns the scans Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1.projects.locations.operations.html b/docs/dyn/ondemandscanning_v1.projects.locations.operations.html
new file mode 100644
index 0000000..f69e867
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1.projects.locations.operations.html
@@ -0,0 +1,268 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1.projects.html">projects</a> . <a href="ondemandscanning_v1.projects.locations.html">locations</a> . <a href="ondemandscanning_v1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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>
+<p class="toc_element">
+  <code><a href="#wait">wait(name, timeout=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(name, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="wait">wait(name, timeout=None, x__xgafv=None)</code>
+  <pre>Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.
+
+Args:
+  name: string, The name of the operation resource to wait on. (required)
+  timeout: string, The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1.projects.locations.scans.html b/docs/dyn/ondemandscanning_v1.projects.locations.scans.html
new file mode 100644
index 0000000..34aa086
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1.projects.locations.scans.html
@@ -0,0 +1,146 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1.projects.html">projects</a> . <a href="ondemandscanning_v1.projects.locations.html">locations</a> . <a href="ondemandscanning_v1.projects.locations.scans.html">scans</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1.projects.locations.scans.vulnerabilities.html">vulnerabilities()</a></code>
+</p>
+<p class="firstline">Returns the vulnerabilities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#analyzePackages">analyzePackages(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Initiates an analysis of the provided packages.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="analyzePackages">analyzePackages(parent, body=None, x__xgafv=None)</code>
+  <pre>Initiates an analysis of the provided packages.
+
+Args:
+  parent: string, Required. The parent of the resource for which analysis is requested. Format: projects/[project_name]/locations/[location] (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # AnalyzePackagesRequest is the request to analyze a list of packages and create Vulnerability Occurrences for it.
+  &quot;packages&quot;: [ # The packages to analyze.
+    {
+      &quot;cpeUri&quot;: &quot;A String&quot;, # The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in which the vulnerability may manifest. Examples include distro or storage location for vulnerable jar.
+      &quot;os&quot;: &quot;A String&quot;, # The OS affected by a vulnerability This field is deprecated and the information is in cpe_uri
+      &quot;osVersion&quot;: &quot;A String&quot;, # The version of the OS This field is deprecated and the information is in cpe_uri
+      &quot;package&quot;: &quot;A String&quot;, # The package being analysed for vulnerabilities
+      &quot;projectId&quot;: &quot;A String&quot;, # The projectId of the package to which this data belongs. Most of Drydock&#x27;s code does not set or use this field. This is added specifically so we can group packages by projects and decide whether or not to apply NVD data to the packages belonging to a specific project.
+      &quot;version&quot;: &quot;A String&quot;, # The version of the package being analysed
+    },
+  ],
+  &quot;resourceUri&quot;: &quot;A String&quot;, # Required. The resource URI of the container image being scanned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1.projects.locations.scans.vulnerabilities.html b/docs/dyn/ondemandscanning_v1.projects.locations.scans.vulnerabilities.html
new file mode 100644
index 0000000..1b58104
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1.projects.locations.scans.vulnerabilities.html
@@ -0,0 +1,411 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1.projects.html">projects</a> . <a href="ondemandscanning_v1.projects.locations.html">locations</a> . <a href="ondemandscanning_v1.projects.locations.scans.html">scans</a> . <a href="ondemandscanning_v1.projects.locations.scans.vulnerabilities.html">vulnerabilities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists vulnerabilities resulting from a successfully completed scan.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists vulnerabilities resulting from a successfully completed scan.
+
+Args:
+  parent: string, Required. The parent of the collection of Vulnerabilities being requested. Format: projects/[project_name]/locations/[location]/scans/[scan_id] (required)
+  pageSize: integer, The number of vulnerabilities to retrieve.
+  pageToken: string, The page token, resulting from a previous call to ListVulnerabilities.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # ListVulnerabilitiesResponse contains a single page of vulnerabilities resulting from a scan.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A page token that can be used in a subsequent call to ListVulnerabilities to continue retrieving results.
+  &quot;occurrences&quot;: [ # The list of Vulnerability Occurrences resulting from a scan.
+    { # An instance of an analysis type that has been found on a resource.
+      &quot;attestation&quot;: { # Occurrence that represents a single &quot;attestation&quot;. The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign. # Describes an attestation of an artifact.
+        &quot;jwts&quot;: [ # One or more JWTs encoding a self-contained attestation. Each JWT encodes the payload that it verifies within the JWT itself. Verifier implementation SHOULD ignore the `serialized_payload` field when verifying these JWTs. If only JWTs are present on this AttestationOccurrence, then the `serialized_payload` SHOULD be left empty. Each JWT SHOULD encode a claim specific to the `resource_uri` of this Occurrence, but this is not validated by Grafeas metadata API implementations. The JWT itself is opaque to Grafeas.
+          {
+            &quot;compactJwt&quot;: &quot;A String&quot;, # The compact encoding of a JWS, which is always three base64 encoded strings joined by periods. For details, see: https://tools.ietf.org/html/rfc7515.html#section-3.1
+          },
+        ],
+        &quot;serializedPayload&quot;: &quot;A String&quot;, # Required. The serialized payload that is verified by one or more `signatures`.
+        &quot;signatures&quot;: [ # One or more signatures over `serialized_payload`. Verifier implementations should consider this attestation message verified if at least one `signature` verifies `serialized_payload`. See `Signature` in common.proto for more details on signature structure and verification.
+          { # Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be &quot;attached&quot; (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any &quot;attached&quot; payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).
+            &quot;publicKeyId&quot;: &quot;A String&quot;, # The identifier for the public key that verifies this signature. * The `public_key_id` is required. * The `public_key_id` SHOULD be an RFC3986 conformant URI. * When possible, the `public_key_id` SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4 public key fingerprint: * &quot;openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA&quot; See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * &quot;ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU&quot; * &quot;nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5&quot;
+            &quot;signature&quot;: &quot;A String&quot;, # The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload.
+          },
+        ],
+      },
+      &quot;build&quot;: { # Details of a build occurrence. # Describes a verifiable build.
+        &quot;provenance&quot;: { # Provenance of a build. Contains all information needed to verify the full details about the build from source to completion. # Required. The actual provenance for the build.
+          &quot;buildOptions&quot;: { # Special options applied to this build. This is a catch-all field where build providers can enter any desired additional details.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;builderVersion&quot;: &quot;A String&quot;, # Version string of the builder at the time this build was executed.
+          &quot;builtArtifacts&quot;: [ # Output of the build.
+            { # Artifact describes a build product.
+              &quot;checksum&quot;: &quot;A String&quot;, # Hash or checksum value of a binary, or Docker Registry 2.0 digest of a container.
+              &quot;id&quot;: &quot;A String&quot;, # Artifact ID, if any; for container images, this will be a URL by digest like `gcr.io/projectID/imagename@sha256:123456`.
+              &quot;names&quot;: [ # Related artifact names. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. Note that a single Artifact ID can have multiple names, for example if two tags are applied to one image.
+                &quot;A String&quot;,
+              ],
+            },
+          ],
+          &quot;commands&quot;: [ # Commands requested by the build.
+            { # Command describes a step performed as part of the build pipeline.
+              &quot;args&quot;: [ # Command-line arguments used when executing this command.
+                &quot;A String&quot;,
+              ],
+              &quot;dir&quot;: &quot;A String&quot;, # Working directory (relative to project source root) used when running this command.
+              &quot;env&quot;: [ # Environment variables set before running this command.
+                &quot;A String&quot;,
+              ],
+              &quot;id&quot;: &quot;A String&quot;, # Optional unique identifier for this command, used in wait_for to reference this command as a dependency.
+              &quot;name&quot;: &quot;A String&quot;, # Required. Name of the command, as presented on the command line, or if the command is packaged as a Docker container, as presented to `docker pull`.
+              &quot;waitFor&quot;: [ # The ID(s) of the command(s) that this command depends on.
+                &quot;A String&quot;,
+              ],
+            },
+          ],
+          &quot;createTime&quot;: &quot;A String&quot;, # Time at which the build was created.
+          &quot;creator&quot;: &quot;A String&quot;, # E-mail address of the user who initiated this build. Note that this was the user&#x27;s e-mail address at the time the build was initiated; this address may not represent the same end-user for all time.
+          &quot;endTime&quot;: &quot;A String&quot;, # Time at which execution of the build was finished.
+          &quot;id&quot;: &quot;A String&quot;, # Required. Unique identifier of the build.
+          &quot;logsUri&quot;: &quot;A String&quot;, # URI where any logs for this provenance were written.
+          &quot;projectId&quot;: &quot;A String&quot;, # ID of the project.
+          &quot;sourceProvenance&quot;: { # Source describes the location of the source used for the build. # Details of the Source input to the build.
+            &quot;additionalContexts&quot;: [ # If provided, some of the source code used for the build may be found in these locations, in the case where the source repository had multiple remotes or submodules. This list will not include the context specified in the context field.
+              { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.
+                &quot;cloudRepo&quot;: { # A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. # A SourceContext referring to a revision in a Google Cloud Source Repo.
+                  &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                    &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                    &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                  },
+                  &quot;repoId&quot;: { # A unique identifier for a Cloud Repo. # The ID of the repo.
+                    &quot;projectRepoId&quot;: { # Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                      &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project.
+                      &quot;repoName&quot;: &quot;A String&quot;, # The name of the repo. Leave empty for the default repo.
+                    },
+                    &quot;uid&quot;: &quot;A String&quot;, # A server-assigned, globally unique identifier.
+                  },
+                  &quot;revisionId&quot;: &quot;A String&quot;, # A revision ID.
+                },
+                &quot;gerrit&quot;: { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
+                  &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                    &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                    &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                  },
+                  &quot;gerritProject&quot;: &quot;A String&quot;, # The full project name within the host. Projects may be nested, so &quot;project/subproject&quot; is a valid project name. The &quot;repo name&quot; is the hostURI/project.
+                  &quot;hostUri&quot;: &quot;A String&quot;, # The URI of a running Gerrit instance.
+                  &quot;revisionId&quot;: &quot;A String&quot;, # A revision (commit) ID.
+                },
+                &quot;git&quot;: { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). # A SourceContext referring to any third party Git repo (e.g., GitHub).
+                  &quot;revisionId&quot;: &quot;A String&quot;, # Git commit hash.
+                  &quot;url&quot;: &quot;A String&quot;, # Git repository URL.
+                },
+                &quot;labels&quot;: { # Labels with user defined metadata.
+                  &quot;a_key&quot;: &quot;A String&quot;,
+                },
+              },
+            ],
+            &quot;artifactStorageSourceUri&quot;: &quot;A String&quot;, # If provided, the input binary artifacts for the build came from this location.
+            &quot;context&quot;: { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. # If provided, the source code used for the build came from this location.
+              &quot;cloudRepo&quot;: { # A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. # A SourceContext referring to a revision in a Google Cloud Source Repo.
+                &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                  &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                  &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                },
+                &quot;repoId&quot;: { # A unique identifier for a Cloud Repo. # The ID of the repo.
+                  &quot;projectRepoId&quot;: { # Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                    &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project.
+                    &quot;repoName&quot;: &quot;A String&quot;, # The name of the repo. Leave empty for the default repo.
+                  },
+                  &quot;uid&quot;: &quot;A String&quot;, # A server-assigned, globally unique identifier.
+                },
+                &quot;revisionId&quot;: &quot;A String&quot;, # A revision ID.
+              },
+              &quot;gerrit&quot;: { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
+                &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                  &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                  &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                },
+                &quot;gerritProject&quot;: &quot;A String&quot;, # The full project name within the host. Projects may be nested, so &quot;project/subproject&quot; is a valid project name. The &quot;repo name&quot; is the hostURI/project.
+                &quot;hostUri&quot;: &quot;A String&quot;, # The URI of a running Gerrit instance.
+                &quot;revisionId&quot;: &quot;A String&quot;, # A revision (commit) ID.
+              },
+              &quot;git&quot;: { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). # A SourceContext referring to any third party Git repo (e.g., GitHub).
+                &quot;revisionId&quot;: &quot;A String&quot;, # Git commit hash.
+                &quot;url&quot;: &quot;A String&quot;, # Git repository URL.
+              },
+              &quot;labels&quot;: { # Labels with user defined metadata.
+                &quot;a_key&quot;: &quot;A String&quot;,
+              },
+            },
+            &quot;fileHashes&quot;: { # Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (.tar.gz), the FileHash will be for the single path to that file.
+              &quot;a_key&quot;: { # Container message for hashes of byte content of files, used in source messages to verify integrity of source input to the build.
+                &quot;fileHash&quot;: [ # Required. Collection of file hashes.
+                  { # Container message for hash values.
+                    &quot;type&quot;: &quot;A String&quot;, # Required. The type of hash that was performed, e.g. &quot;SHA-256&quot;.
+                    &quot;value&quot;: &quot;A String&quot;, # Required. The hash value.
+                  },
+                ],
+              },
+            },
+          },
+          &quot;startTime&quot;: &quot;A String&quot;, # Time at which execution of the build was started.
+          &quot;triggerId&quot;: &quot;A String&quot;, # Trigger identifier if the build was triggered automatically; empty if not.
+        },
+        &quot;provenanceBytes&quot;: &quot;A String&quot;, # Serialized JSON representation of the provenance, used in generating the build signature in the corresponding build note. After verifying the signature, `provenance_bytes` can be unmarshalled and compared to the provenance to confirm that it is unchanged. A base64-encoded string representation of the provenance bytes is used for the signature in order to interoperate with openssl which expects this format for signature verification. The serialized form is captured both to avoid ambiguity in how the provenance is marshalled to json as well to prevent incompatibilities with future changes.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time this occurrence was created.
+      &quot;deployment&quot;: { # The period during which some deployable was active in a runtime. # Describes the deployment of an artifact on a runtime.
+        &quot;address&quot;: &quot;A String&quot;, # Address of the runtime element hosting this deployment.
+        &quot;config&quot;: &quot;A String&quot;, # Configuration used to create this deployment.
+        &quot;deployTime&quot;: &quot;A String&quot;, # Required. Beginning of the lifetime of this deployment.
+        &quot;platform&quot;: &quot;A String&quot;, # Platform hosting this deployment.
+        &quot;resourceUri&quot;: [ # Output only. Resource URI for the artifact being deployed taken from the deployable field with the same name.
+          &quot;A String&quot;,
+        ],
+        &quot;undeployTime&quot;: &quot;A String&quot;, # End of the lifetime of this deployment.
+        &quot;userEmail&quot;: &quot;A String&quot;, # Identity of the user that triggered this deployment.
+      },
+      &quot;discovery&quot;: { # Provides information about the analysis status of a discovered resource. # Describes when a resource was discovered.
+        &quot;analysisStatus&quot;: &quot;A String&quot;, # The status of discovery for the resource.
+        &quot;analysisStatusError&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # When an error is encountered this will contain a LocalizedMessage under details to show to the user. The LocalizedMessage is output only and populated by the API.
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;message&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;continuousAnalysis&quot;: &quot;A String&quot;, # Whether the resource is continuously analyzed.
+        &quot;cpe&quot;: &quot;A String&quot;, # The CPE of the resource being scanned.
+        &quot;lastScanTime&quot;: &quot;A String&quot;, # The last time this resource was scanned.
+      },
+      &quot;image&quot;: { # Details of the derived image portion of the DockerImage relationship. This image would be produced from a Dockerfile with FROM . # Describes how this resource derives from the basis in the associated note.
+        &quot;baseResourceUrl&quot;: &quot;A String&quot;, # Output only. This contains the base image URL for the derived image occurrence.
+        &quot;distance&quot;: 42, # Output only. The number of layers by which this image differs from the associated image basis.
+        &quot;fingerprint&quot;: { # A set of properties that uniquely identify a given Docker image. # Required. The fingerprint of the derived image.
+          &quot;v1Name&quot;: &quot;A String&quot;, # Required. The layer ID of the final layer in the Docker image&#x27;s v1 representation.
+          &quot;v2Blob&quot;: [ # Required. The ordered list of v2 blobs that represent a given image.
+            &quot;A String&quot;,
+          ],
+          &quot;v2Name&quot;: &quot;A String&quot;, # Output only. The name of the image&#x27;s v2 blobs computed via: [bottom] := v2_blobbottom := sha256(v2_blob[N] + &quot; &quot; + v2_name[N+1]) Only the name of the final blob is kept.
+        },
+        &quot;layerInfo&quot;: [ # This contains layer-specific metadata, if populated it has length &quot;distance&quot; and is ordered with [distance] being the layer immediately following the base image and [1] being the final layer.
+          { # Layer holds metadata specific to a layer of a Docker image.
+            &quot;arguments&quot;: &quot;A String&quot;, # The recovered arguments to the Dockerfile directive.
+            &quot;directive&quot;: &quot;A String&quot;, # Required. The recovered Dockerfile directive used to construct this layer. See https://docs.docker.com/engine/reference/builder/ for more information.
+          },
+        ],
+      },
+      &quot;kind&quot;: &quot;A String&quot;, # Output only. This explicitly denotes which of the occurrence details are specified. This field can be used as a filter in list requests.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
+      &quot;noteName&quot;: &quot;A String&quot;, # Required. Immutable. The analysis note associated with this occurrence, in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be used as a filter in list requests.
+      &quot;package&quot;: { # Details on how a particular software package was installed on a system. # Describes the installation of a package on the linked resource.
+        &quot;location&quot;: [ # Required. All of the places within the filesystem versions of this package have been found.
+          { # An occurrence of a particular package installation found within a system&#x27;s filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.
+            &quot;cpeUri&quot;: &quot;A String&quot;, # Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.
+            &quot;path&quot;: &quot;A String&quot;, # The path from which we gathered that this package/version is installed.
+            &quot;version&quot;: { # Version contains structured information about the version of a package. # The version installed at this location.
+              &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+              &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+              &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+              &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+              &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+              &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+            },
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the installed package.
+      },
+      &quot;remediation&quot;: &quot;A String&quot;, # A description of actions that can be taken to remedy the note.
+      &quot;resourceUri&quot;: &quot;A String&quot;, # Required. Immutable. A URI that represents the resource for which the occurrence applies. For example, `https://gcr.io/project/image@sha256:123abc` for a Docker image.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time this occurrence was last updated.
+      &quot;upgrade&quot;: { # An Upgrade Occurrence represents that a specific resource_url could install a specific upgrade. This presence is supplied via local sources (i.e. it is present in the mirror and the running system has noticed its availability). For Windows, both distribution and windows_update contain information for the Windows update. # Describes an available package upgrade on the linked resource.
+        &quot;distribution&quot;: { # The Upgrade Distribution represents metadata about the Upgrade for each operating system (CPE). Some distributions have additional metadata around updates, classifying them into various categories and severities. # Metadata about the upgrade for available for the specific operating system for the resource_url. This allows efficient filtering, as well as making it easier to use the occurrence.
+          &quot;classification&quot;: &quot;A String&quot;, # The operating system classification of this Upgrade, as specified by the upstream operating system upgrade feed. For Windows the classification is one of the category_ids listed at https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85)
+          &quot;cpeUri&quot;: &quot;A String&quot;, # Required - The specific operating system this metadata applies to. See https://cpe.mitre.org/specification/.
+          &quot;cve&quot;: [ # The cve tied to this Upgrade.
+            &quot;A String&quot;,
+          ],
+          &quot;severity&quot;: &quot;A String&quot;, # The severity as specified by the upstream operating system.
+        },
+        &quot;package&quot;: &quot;A String&quot;, # Required for non-Windows OS. The package this Upgrade is for.
+        &quot;parsedVersion&quot;: { # Version contains structured information about the version of a package. # Required for non-Windows OS. The version of the package in a machine + human readable form.
+          &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+          &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+          &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+          &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+          &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+          &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+        },
+        &quot;windowsUpdate&quot;: { # Windows Update represents the metadata about the update for the Windows operating system. The fields in this message come from the Windows Update API documented at https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate. # Required for Windows OS. Represents the metadata about the Windows update.
+          &quot;categories&quot;: [ # The list of categories to which the update belongs.
+            { # The category to which the update belongs.
+              &quot;categoryId&quot;: &quot;A String&quot;, # The identifier of the category.
+              &quot;name&quot;: &quot;A String&quot;, # The localized name of the category.
+            },
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # The localized description of the update.
+          &quot;identity&quot;: { # The unique identifier of the update. # Required - The unique identifier for the update.
+            &quot;revision&quot;: 42, # The revision number of the update.
+            &quot;updateId&quot;: &quot;A String&quot;, # The revision independent identifier of the update.
+          },
+          &quot;kbArticleIds&quot;: [ # The Microsoft Knowledge Base article IDs that are associated with the update.
+            &quot;A String&quot;,
+          ],
+          &quot;lastPublishedTimestamp&quot;: &quot;A String&quot;, # The last published timestamp of the update.
+          &quot;supportUrl&quot;: &quot;A String&quot;, # The hyperlink to the support information for the update.
+          &quot;title&quot;: &quot;A String&quot;, # The localized title of the update.
+        },
+      },
+      &quot;vulnerability&quot;: { # An occurrence of a severity vulnerability on a resource. # Describes a security vulnerability.
+        &quot;cvssScore&quot;: 3.14, # Output only. The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.
+        &quot;effectiveSeverity&quot;: &quot;A String&quot;, # The distro assigned severity for this vulnerability when it is available, otherwise this is the note provider assigned severity.
+        &quot;fixAvailable&quot;: True or False, # Output only. Whether at least one of the affected packages has a fix available.
+        &quot;longDescription&quot;: &quot;A String&quot;, # Output only. A detailed description of this vulnerability.
+        &quot;packageIssue&quot;: [ # Required. The set of affected locations and their fixes (if available) within the associated resource.
+          { # A detail for a distro and package this vulnerability occurrence was found in and its associated fix (if one is available).
+            &quot;affectedCpeUri&quot;: &quot;A String&quot;, # Required. The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was found in.
+            &quot;affectedPackage&quot;: &quot;A String&quot;, # Required. The package this vulnerability was found in.
+            &quot;affectedVersion&quot;: { # Version contains structured information about the version of a package. # Required. The version of the package that is installed on the resource affected by this vulnerability.
+              &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+              &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+              &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+              &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+              &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+              &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+            },
+            &quot;fixAvailable&quot;: True or False, # Output only. Whether a fix is available for this package.
+            &quot;fixedCpeUri&quot;: &quot;A String&quot;, # The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was fixed in. It is possible for this to be different from the affected_cpe_uri.
+            &quot;fixedPackage&quot;: &quot;A String&quot;, # The package this vulnerability was fixed in. It is possible for this to be different from the affected_package.
+            &quot;fixedVersion&quot;: { # Version contains structured information about the version of a package. # Required. The version of the package this vulnerability was fixed in. Setting this to VersionKind.MAXIMUM means no fix is yet available.
+              &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+              &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+              &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+              &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+              &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+              &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+            },
+          },
+        ],
+        &quot;relatedUrls&quot;: [ # Output only. URLs related to this vulnerability.
+          { # Metadata for any related URL information.
+            &quot;label&quot;: &quot;A String&quot;, # Label to describe usage of the URL.
+            &quot;url&quot;: &quot;A String&quot;, # Specific URL associated with the resource.
+          },
+        ],
+        &quot;severity&quot;: &quot;A String&quot;, # Output only. The note provider assigned severity of this vulnerability.
+        &quot;shortDescription&quot;: &quot;A String&quot;, # Output only. A one sentence description of this vulnerability.
+        &quot;type&quot;: &quot;A String&quot;, # The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1beta1.html b/docs/dyn/ondemandscanning_v1beta1.html
new file mode 100644
index 0000000..55bfb8b
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1beta1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1beta1.html">On-Demand Scanning API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1beta1.projects.html b/docs/dyn/ondemandscanning_v1beta1.projects.html
new file mode 100644
index 0000000..657e7af
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1beta1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1beta1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1beta1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1beta1.projects.locations.html b/docs/dyn/ondemandscanning_v1beta1.projects.locations.html
new file mode 100644
index 0000000..2434327
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1beta1.projects.locations.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1beta1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1beta1.projects.html">projects</a> . <a href="ondemandscanning_v1beta1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1beta1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1beta1.projects.locations.scans.html">scans()</a></code>
+</p>
+<p class="firstline">Returns the scans Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1beta1.projects.locations.operations.html b/docs/dyn/ondemandscanning_v1beta1.projects.locations.operations.html
new file mode 100644
index 0000000..2f36e56
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1beta1.projects.locations.operations.html
@@ -0,0 +1,268 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1beta1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1beta1.projects.html">projects</a> . <a href="ondemandscanning_v1beta1.projects.locations.html">locations</a> . <a href="ondemandscanning_v1beta1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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>
+<p class="toc_element">
+  <code><a href="#wait">wait(name, timeout=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(name, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; 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="wait">wait(name, timeout=None, x__xgafv=None)</code>
+  <pre>Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.
+
+Args:
+  name: string, The name of the operation resource to wait on. (required)
+  timeout: string, The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1beta1.projects.locations.scans.html b/docs/dyn/ondemandscanning_v1beta1.projects.locations.scans.html
new file mode 100644
index 0000000..bd857e0
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1beta1.projects.locations.scans.html
@@ -0,0 +1,146 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1beta1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1beta1.projects.html">projects</a> . <a href="ondemandscanning_v1beta1.projects.locations.html">locations</a> . <a href="ondemandscanning_v1beta1.projects.locations.scans.html">scans</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="ondemandscanning_v1beta1.projects.locations.scans.vulnerabilities.html">vulnerabilities()</a></code>
+</p>
+<p class="firstline">Returns the vulnerabilities Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#analyzePackages">analyzePackages(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Initiates an analysis of the provided packages.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="analyzePackages">analyzePackages(parent, body=None, x__xgafv=None)</code>
+  <pre>Initiates an analysis of the provided packages.
+
+Args:
+  parent: string, Required. The parent of the resource for which analysis is requested. Format: projects/[project_name]/locations/[location] (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # AnalyzePackagesRequest is the request to analyze a list of packages and create Vulnerability Occurrences for it.
+  &quot;packages&quot;: [ # The packages to analyze.
+    {
+      &quot;cpeUri&quot;: &quot;A String&quot;, # The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) in which the vulnerability may manifest. Examples include distro or storage location for vulnerable jar.
+      &quot;os&quot;: &quot;A String&quot;, # The OS affected by a vulnerability This field is deprecated and the information is in cpe_uri
+      &quot;osVersion&quot;: &quot;A String&quot;, # The version of the OS This field is deprecated and the information is in cpe_uri
+      &quot;package&quot;: &quot;A String&quot;, # The package being analysed for vulnerabilities
+      &quot;projectId&quot;: &quot;A String&quot;, # The projectId of the package to which this data belongs. Most of Drydock&#x27;s code does not set or use this field. This is added specifically so we can group packages by projects and decide whether or not to apply NVD data to the packages belonging to a specific project.
+      &quot;version&quot;: &quot;A String&quot;, # The version of the package being analysed
+    },
+  ],
+  &quot;resourceUri&quot;: &quot;A String&quot;, # Required. The resource URI of the container image being scanned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/ondemandscanning_v1beta1.projects.locations.scans.vulnerabilities.html b/docs/dyn/ondemandscanning_v1beta1.projects.locations.scans.vulnerabilities.html
new file mode 100644
index 0000000..8f1100d
--- /dev/null
+++ b/docs/dyn/ondemandscanning_v1beta1.projects.locations.scans.vulnerabilities.html
@@ -0,0 +1,411 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ondemandscanning_v1beta1.html">On-Demand Scanning API</a> . <a href="ondemandscanning_v1beta1.projects.html">projects</a> . <a href="ondemandscanning_v1beta1.projects.locations.html">locations</a> . <a href="ondemandscanning_v1beta1.projects.locations.scans.html">scans</a> . <a href="ondemandscanning_v1beta1.projects.locations.scans.vulnerabilities.html">vulnerabilities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists vulnerabilities resulting from a successfully completed scan.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists vulnerabilities resulting from a successfully completed scan.
+
+Args:
+  parent: string, Required. The parent of the collection of Vulnerabilities being requested. Format: projects/[project_name]/locations/[location]/scans/[scan_id] (required)
+  pageSize: integer, The number of vulnerabilities to retrieve.
+  pageToken: string, The page token, resulting from a previous call to ListVulnerabilities.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # ListVulnerabilitiesResponse contains a single page of vulnerabilities resulting from a scan.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A page token that can be used in a subsequent call to ListVulnerabilities to continue retrieving results.
+  &quot;occurrences&quot;: [ # The list of Vulnerability Occurrences resulting from a scan.
+    { # An instance of an analysis type that has been found on a resource.
+      &quot;attestation&quot;: { # Occurrence that represents a single &quot;attestation&quot;. The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign. # Describes an attestation of an artifact.
+        &quot;jwts&quot;: [ # One or more JWTs encoding a self-contained attestation. Each JWT encodes the payload that it verifies within the JWT itself. Verifier implementation SHOULD ignore the `serialized_payload` field when verifying these JWTs. If only JWTs are present on this AttestationOccurrence, then the `serialized_payload` SHOULD be left empty. Each JWT SHOULD encode a claim specific to the `resource_uri` of this Occurrence, but this is not validated by Grafeas metadata API implementations. The JWT itself is opaque to Grafeas.
+          {
+            &quot;compactJwt&quot;: &quot;A String&quot;, # The compact encoding of a JWS, which is always three base64 encoded strings joined by periods. For details, see: https://tools.ietf.org/html/rfc7515.html#section-3.1
+          },
+        ],
+        &quot;serializedPayload&quot;: &quot;A String&quot;, # Required. The serialized payload that is verified by one or more `signatures`.
+        &quot;signatures&quot;: [ # One or more signatures over `serialized_payload`. Verifier implementations should consider this attestation message verified if at least one `signature` verifies `serialized_payload`. See `Signature` in common.proto for more details on signature structure and verification.
+          { # Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be &quot;attached&quot; (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any &quot;attached&quot; payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).
+            &quot;publicKeyId&quot;: &quot;A String&quot;, # The identifier for the public key that verifies this signature. * The `public_key_id` is required. * The `public_key_id` SHOULD be an RFC3986 conformant URI. * When possible, the `public_key_id` SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4 public key fingerprint: * &quot;openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA&quot; See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * &quot;ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU&quot; * &quot;nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5&quot;
+            &quot;signature&quot;: &quot;A String&quot;, # The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload.
+          },
+        ],
+      },
+      &quot;build&quot;: { # Details of a build occurrence. # Describes a verifiable build.
+        &quot;provenance&quot;: { # Provenance of a build. Contains all information needed to verify the full details about the build from source to completion. # Required. The actual provenance for the build.
+          &quot;buildOptions&quot;: { # Special options applied to this build. This is a catch-all field where build providers can enter any desired additional details.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;builderVersion&quot;: &quot;A String&quot;, # Version string of the builder at the time this build was executed.
+          &quot;builtArtifacts&quot;: [ # Output of the build.
+            { # Artifact describes a build product.
+              &quot;checksum&quot;: &quot;A String&quot;, # Hash or checksum value of a binary, or Docker Registry 2.0 digest of a container.
+              &quot;id&quot;: &quot;A String&quot;, # Artifact ID, if any; for container images, this will be a URL by digest like `gcr.io/projectID/imagename@sha256:123456`.
+              &quot;names&quot;: [ # Related artifact names. This may be the path to a binary or jar file, or in the case of a container build, the name used to push the container image to Google Container Registry, as presented to `docker push`. Note that a single Artifact ID can have multiple names, for example if two tags are applied to one image.
+                &quot;A String&quot;,
+              ],
+            },
+          ],
+          &quot;commands&quot;: [ # Commands requested by the build.
+            { # Command describes a step performed as part of the build pipeline.
+              &quot;args&quot;: [ # Command-line arguments used when executing this command.
+                &quot;A String&quot;,
+              ],
+              &quot;dir&quot;: &quot;A String&quot;, # Working directory (relative to project source root) used when running this command.
+              &quot;env&quot;: [ # Environment variables set before running this command.
+                &quot;A String&quot;,
+              ],
+              &quot;id&quot;: &quot;A String&quot;, # Optional unique identifier for this command, used in wait_for to reference this command as a dependency.
+              &quot;name&quot;: &quot;A String&quot;, # Required. Name of the command, as presented on the command line, or if the command is packaged as a Docker container, as presented to `docker pull`.
+              &quot;waitFor&quot;: [ # The ID(s) of the command(s) that this command depends on.
+                &quot;A String&quot;,
+              ],
+            },
+          ],
+          &quot;createTime&quot;: &quot;A String&quot;, # Time at which the build was created.
+          &quot;creator&quot;: &quot;A String&quot;, # E-mail address of the user who initiated this build. Note that this was the user&#x27;s e-mail address at the time the build was initiated; this address may not represent the same end-user for all time.
+          &quot;endTime&quot;: &quot;A String&quot;, # Time at which execution of the build was finished.
+          &quot;id&quot;: &quot;A String&quot;, # Required. Unique identifier of the build.
+          &quot;logsUri&quot;: &quot;A String&quot;, # URI where any logs for this provenance were written.
+          &quot;projectId&quot;: &quot;A String&quot;, # ID of the project.
+          &quot;sourceProvenance&quot;: { # Source describes the location of the source used for the build. # Details of the Source input to the build.
+            &quot;additionalContexts&quot;: [ # If provided, some of the source code used for the build may be found in these locations, in the case where the source repository had multiple remotes or submodules. This list will not include the context specified in the context field.
+              { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.
+                &quot;cloudRepo&quot;: { # A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. # A SourceContext referring to a revision in a Google Cloud Source Repo.
+                  &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                    &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                    &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                  },
+                  &quot;repoId&quot;: { # A unique identifier for a Cloud Repo. # The ID of the repo.
+                    &quot;projectRepoId&quot;: { # Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                      &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project.
+                      &quot;repoName&quot;: &quot;A String&quot;, # The name of the repo. Leave empty for the default repo.
+                    },
+                    &quot;uid&quot;: &quot;A String&quot;, # A server-assigned, globally unique identifier.
+                  },
+                  &quot;revisionId&quot;: &quot;A String&quot;, # A revision ID.
+                },
+                &quot;gerrit&quot;: { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
+                  &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                    &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                    &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                  },
+                  &quot;gerritProject&quot;: &quot;A String&quot;, # The full project name within the host. Projects may be nested, so &quot;project/subproject&quot; is a valid project name. The &quot;repo name&quot; is the hostURI/project.
+                  &quot;hostUri&quot;: &quot;A String&quot;, # The URI of a running Gerrit instance.
+                  &quot;revisionId&quot;: &quot;A String&quot;, # A revision (commit) ID.
+                },
+                &quot;git&quot;: { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). # A SourceContext referring to any third party Git repo (e.g., GitHub).
+                  &quot;revisionId&quot;: &quot;A String&quot;, # Git commit hash.
+                  &quot;url&quot;: &quot;A String&quot;, # Git repository URL.
+                },
+                &quot;labels&quot;: { # Labels with user defined metadata.
+                  &quot;a_key&quot;: &quot;A String&quot;,
+                },
+              },
+            ],
+            &quot;artifactStorageSourceUri&quot;: &quot;A String&quot;, # If provided, the input binary artifacts for the build came from this location.
+            &quot;context&quot;: { # A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory. # If provided, the source code used for the build came from this location.
+              &quot;cloudRepo&quot;: { # A CloudRepoSourceContext denotes a particular revision in a Google Cloud Source Repo. # A SourceContext referring to a revision in a Google Cloud Source Repo.
+                &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                  &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                  &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                },
+                &quot;repoId&quot;: { # A unique identifier for a Cloud Repo. # The ID of the repo.
+                  &quot;projectRepoId&quot;: { # Selects a repo using a Google Cloud Platform project ID (e.g., winged-cargo-31) and a repo name within that project. # A combination of a project ID and a repo name.
+                    &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project.
+                    &quot;repoName&quot;: &quot;A String&quot;, # The name of the repo. Leave empty for the default repo.
+                  },
+                  &quot;uid&quot;: &quot;A String&quot;, # A server-assigned, globally unique identifier.
+                },
+                &quot;revisionId&quot;: &quot;A String&quot;, # A revision ID.
+              },
+              &quot;gerrit&quot;: { # A SourceContext referring to a Gerrit project. # A SourceContext referring to a Gerrit project.
+                &quot;aliasContext&quot;: { # An alias to a repo revision. # An alias, which may be a branch or tag.
+                  &quot;kind&quot;: &quot;A String&quot;, # The alias kind.
+                  &quot;name&quot;: &quot;A String&quot;, # The alias name.
+                },
+                &quot;gerritProject&quot;: &quot;A String&quot;, # The full project name within the host. Projects may be nested, so &quot;project/subproject&quot; is a valid project name. The &quot;repo name&quot; is the hostURI/project.
+                &quot;hostUri&quot;: &quot;A String&quot;, # The URI of a running Gerrit instance.
+                &quot;revisionId&quot;: &quot;A String&quot;, # A revision (commit) ID.
+              },
+              &quot;git&quot;: { # A GitSourceContext denotes a particular revision in a third party Git repository (e.g., GitHub). # A SourceContext referring to any third party Git repo (e.g., GitHub).
+                &quot;revisionId&quot;: &quot;A String&quot;, # Git commit hash.
+                &quot;url&quot;: &quot;A String&quot;, # Git repository URL.
+              },
+              &quot;labels&quot;: { # Labels with user defined metadata.
+                &quot;a_key&quot;: &quot;A String&quot;,
+              },
+            },
+            &quot;fileHashes&quot;: { # Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (.tar.gz), the FileHash will be for the single path to that file.
+              &quot;a_key&quot;: { # Container message for hashes of byte content of files, used in source messages to verify integrity of source input to the build.
+                &quot;fileHash&quot;: [ # Required. Collection of file hashes.
+                  { # Container message for hash values.
+                    &quot;type&quot;: &quot;A String&quot;, # Required. The type of hash that was performed, e.g. &quot;SHA-256&quot;.
+                    &quot;value&quot;: &quot;A String&quot;, # Required. The hash value.
+                  },
+                ],
+              },
+            },
+          },
+          &quot;startTime&quot;: &quot;A String&quot;, # Time at which execution of the build was started.
+          &quot;triggerId&quot;: &quot;A String&quot;, # Trigger identifier if the build was triggered automatically; empty if not.
+        },
+        &quot;provenanceBytes&quot;: &quot;A String&quot;, # Serialized JSON representation of the provenance, used in generating the build signature in the corresponding build note. After verifying the signature, `provenance_bytes` can be unmarshalled and compared to the provenance to confirm that it is unchanged. A base64-encoded string representation of the provenance bytes is used for the signature in order to interoperate with openssl which expects this format for signature verification. The serialized form is captured both to avoid ambiguity in how the provenance is marshalled to json as well to prevent incompatibilities with future changes.
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time this occurrence was created.
+      &quot;deployment&quot;: { # The period during which some deployable was active in a runtime. # Describes the deployment of an artifact on a runtime.
+        &quot;address&quot;: &quot;A String&quot;, # Address of the runtime element hosting this deployment.
+        &quot;config&quot;: &quot;A String&quot;, # Configuration used to create this deployment.
+        &quot;deployTime&quot;: &quot;A String&quot;, # Required. Beginning of the lifetime of this deployment.
+        &quot;platform&quot;: &quot;A String&quot;, # Platform hosting this deployment.
+        &quot;resourceUri&quot;: [ # Output only. Resource URI for the artifact being deployed taken from the deployable field with the same name.
+          &quot;A String&quot;,
+        ],
+        &quot;undeployTime&quot;: &quot;A String&quot;, # End of the lifetime of this deployment.
+        &quot;userEmail&quot;: &quot;A String&quot;, # Identity of the user that triggered this deployment.
+      },
+      &quot;discovery&quot;: { # Provides information about the analysis status of a discovered resource. # Describes when a resource was discovered.
+        &quot;analysisStatus&quot;: &quot;A String&quot;, # The status of discovery for the resource.
+        &quot;analysisStatusError&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # When an error is encountered this will contain a LocalizedMessage under details to show to the user. The LocalizedMessage is output only and populated by the API.
+          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+          &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+            {
+              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+            },
+          ],
+          &quot;message&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;continuousAnalysis&quot;: &quot;A String&quot;, # Whether the resource is continuously analyzed.
+        &quot;cpe&quot;: &quot;A String&quot;, # The CPE of the resource being scanned.
+        &quot;lastScanTime&quot;: &quot;A String&quot;, # The last time this resource was scanned.
+      },
+      &quot;image&quot;: { # Details of the derived image portion of the DockerImage relationship. This image would be produced from a Dockerfile with FROM . # Describes how this resource derives from the basis in the associated note.
+        &quot;baseResourceUrl&quot;: &quot;A String&quot;, # Output only. This contains the base image URL for the derived image occurrence.
+        &quot;distance&quot;: 42, # Output only. The number of layers by which this image differs from the associated image basis.
+        &quot;fingerprint&quot;: { # A set of properties that uniquely identify a given Docker image. # Required. The fingerprint of the derived image.
+          &quot;v1Name&quot;: &quot;A String&quot;, # Required. The layer ID of the final layer in the Docker image&#x27;s v1 representation.
+          &quot;v2Blob&quot;: [ # Required. The ordered list of v2 blobs that represent a given image.
+            &quot;A String&quot;,
+          ],
+          &quot;v2Name&quot;: &quot;A String&quot;, # Output only. The name of the image&#x27;s v2 blobs computed via: [bottom] := v2_blobbottom := sha256(v2_blob[N] + &quot; &quot; + v2_name[N+1]) Only the name of the final blob is kept.
+        },
+        &quot;layerInfo&quot;: [ # This contains layer-specific metadata, if populated it has length &quot;distance&quot; and is ordered with [distance] being the layer immediately following the base image and [1] being the final layer.
+          { # Layer holds metadata specific to a layer of a Docker image.
+            &quot;arguments&quot;: &quot;A String&quot;, # The recovered arguments to the Dockerfile directive.
+            &quot;directive&quot;: &quot;A String&quot;, # Required. The recovered Dockerfile directive used to construct this layer. See https://docs.docker.com/engine/reference/builder/ for more information.
+          },
+        ],
+      },
+      &quot;kind&quot;: &quot;A String&quot;, # Output only. This explicitly denotes which of the occurrence details are specified. This field can be used as a filter in list requests.
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
+      &quot;noteName&quot;: &quot;A String&quot;, # Required. Immutable. The analysis note associated with this occurrence, in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be used as a filter in list requests.
+      &quot;package&quot;: { # Details on how a particular software package was installed on a system. # Describes the installation of a package on the linked resource.
+        &quot;location&quot;: [ # Required. All of the places within the filesystem versions of this package have been found.
+          { # An occurrence of a particular package installation found within a system&#x27;s filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.
+            &quot;cpeUri&quot;: &quot;A String&quot;, # Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.
+            &quot;path&quot;: &quot;A String&quot;, # The path from which we gathered that this package/version is installed.
+            &quot;version&quot;: { # Version contains structured information about the version of a package. # The version installed at this location.
+              &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+              &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+              &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+              &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+              &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+              &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+            },
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Output only. The name of the installed package.
+      },
+      &quot;remediation&quot;: &quot;A String&quot;, # A description of actions that can be taken to remedy the note.
+      &quot;resourceUri&quot;: &quot;A String&quot;, # Required. Immutable. A URI that represents the resource for which the occurrence applies. For example, `https://gcr.io/project/image@sha256:123abc` for a Docker image.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time this occurrence was last updated.
+      &quot;upgrade&quot;: { # An Upgrade Occurrence represents that a specific resource_url could install a specific upgrade. This presence is supplied via local sources (i.e. it is present in the mirror and the running system has noticed its availability). For Windows, both distribution and windows_update contain information for the Windows update. # Describes an available package upgrade on the linked resource.
+        &quot;distribution&quot;: { # The Upgrade Distribution represents metadata about the Upgrade for each operating system (CPE). Some distributions have additional metadata around updates, classifying them into various categories and severities. # Metadata about the upgrade for available for the specific operating system for the resource_url. This allows efficient filtering, as well as making it easier to use the occurrence.
+          &quot;classification&quot;: &quot;A String&quot;, # The operating system classification of this Upgrade, as specified by the upstream operating system upgrade feed. For Windows the classification is one of the category_ids listed at https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ff357803(v=vs.85)
+          &quot;cpeUri&quot;: &quot;A String&quot;, # Required - The specific operating system this metadata applies to. See https://cpe.mitre.org/specification/.
+          &quot;cve&quot;: [ # The cve tied to this Upgrade.
+            &quot;A String&quot;,
+          ],
+          &quot;severity&quot;: &quot;A String&quot;, # The severity as specified by the upstream operating system.
+        },
+        &quot;package&quot;: &quot;A String&quot;, # Required for non-Windows OS. The package this Upgrade is for.
+        &quot;parsedVersion&quot;: { # Version contains structured information about the version of a package. # Required for non-Windows OS. The version of the package in a machine + human readable form.
+          &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+          &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+          &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+          &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+          &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+          &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+        },
+        &quot;windowsUpdate&quot;: { # Windows Update represents the metadata about the update for the Windows operating system. The fields in this message come from the Windows Update API documented at https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nn-wuapi-iupdate. # Required for Windows OS. Represents the metadata about the Windows update.
+          &quot;categories&quot;: [ # The list of categories to which the update belongs.
+            { # The category to which the update belongs.
+              &quot;categoryId&quot;: &quot;A String&quot;, # The identifier of the category.
+              &quot;name&quot;: &quot;A String&quot;, # The localized name of the category.
+            },
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # The localized description of the update.
+          &quot;identity&quot;: { # The unique identifier of the update. # Required - The unique identifier for the update.
+            &quot;revision&quot;: 42, # The revision number of the update.
+            &quot;updateId&quot;: &quot;A String&quot;, # The revision independent identifier of the update.
+          },
+          &quot;kbArticleIds&quot;: [ # The Microsoft Knowledge Base article IDs that are associated with the update.
+            &quot;A String&quot;,
+          ],
+          &quot;lastPublishedTimestamp&quot;: &quot;A String&quot;, # The last published timestamp of the update.
+          &quot;supportUrl&quot;: &quot;A String&quot;, # The hyperlink to the support information for the update.
+          &quot;title&quot;: &quot;A String&quot;, # The localized title of the update.
+        },
+      },
+      &quot;vulnerability&quot;: { # An occurrence of a severity vulnerability on a resource. # Describes a security vulnerability.
+        &quot;cvssScore&quot;: 3.14, # Output only. The CVSS score of this vulnerability. CVSS score is on a scale of 0 - 10 where 0 indicates low severity and 10 indicates high severity.
+        &quot;effectiveSeverity&quot;: &quot;A String&quot;, # The distro assigned severity for this vulnerability when it is available, otherwise this is the note provider assigned severity.
+        &quot;fixAvailable&quot;: True or False, # Output only. Whether at least one of the affected packages has a fix available.
+        &quot;longDescription&quot;: &quot;A String&quot;, # Output only. A detailed description of this vulnerability.
+        &quot;packageIssue&quot;: [ # Required. The set of affected locations and their fixes (if available) within the associated resource.
+          { # A detail for a distro and package this vulnerability occurrence was found in and its associated fix (if one is available).
+            &quot;affectedCpeUri&quot;: &quot;A String&quot;, # Required. The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was found in.
+            &quot;affectedPackage&quot;: &quot;A String&quot;, # Required. The package this vulnerability was found in.
+            &quot;affectedVersion&quot;: { # Version contains structured information about the version of a package. # Required. The version of the package that is installed on the resource affected by this vulnerability.
+              &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+              &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+              &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+              &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+              &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+              &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+            },
+            &quot;fixAvailable&quot;: True or False, # Output only. Whether a fix is available for this package.
+            &quot;fixedCpeUri&quot;: &quot;A String&quot;, # The [CPE URI](https://cpe.mitre.org/specification/) this vulnerability was fixed in. It is possible for this to be different from the affected_cpe_uri.
+            &quot;fixedPackage&quot;: &quot;A String&quot;, # The package this vulnerability was fixed in. It is possible for this to be different from the affected_package.
+            &quot;fixedVersion&quot;: { # Version contains structured information about the version of a package. # Required. The version of the package this vulnerability was fixed in. Setting this to VersionKind.MAXIMUM means no fix is yet available.
+              &quot;epoch&quot;: 42, # Used to correct mistakes in the version numbering scheme.
+              &quot;fullName&quot;: &quot;A String&quot;, # Human readable version string. This string is of the form :- and is only set when kind is NORMAL.
+              &quot;inclusive&quot;: True or False, # Whether this version is specifying part of an inclusive range. Grafeas does not have the capability to specify version ranges; instead we have fields that specify start version and end versions. At times this is insufficient - we also need to specify whether the version is included in the range or is excluded from the range. This boolean is expected to be set to true when the version is included in a range.
+              &quot;kind&quot;: &quot;A String&quot;, # Required. Distinguishes between sentinel MIN/MAX versions and normal versions.
+              &quot;name&quot;: &quot;A String&quot;, # Required only when version kind is NORMAL. The main part of the version name.
+              &quot;revision&quot;: &quot;A String&quot;, # The iteration of the package build from the above version.
+            },
+          },
+        ],
+        &quot;relatedUrls&quot;: [ # Output only. URLs related to this vulnerability.
+          { # Metadata for any related URL information.
+            &quot;label&quot;: &quot;A String&quot;, # Label to describe usage of the URL.
+            &quot;url&quot;: &quot;A String&quot;, # Specific URL associated with the resource.
+          },
+        ],
+        &quot;severity&quot;: &quot;A String&quot;, # Output only. The note provider assigned severity of this vulnerability.
+        &quot;shortDescription&quot;: &quot;A String&quot;, # Output only. A one sentence description of this vulnerability.
+        &quot;type&quot;: &quot;A String&quot;, # The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.folders.constraints.html b/docs/dyn/orgpolicy_v2.folders.constraints.html
new file mode 100644
index 0000000..e85ea62
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.folders.constraints.html
@@ -0,0 +1,141 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.folders.html">folders</a> . <a href="orgpolicy_v2.folders.constraints.html">constraints</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists `Constraints` that could be applied on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists `Constraints` that could be applied on the specified resource.
+
+Args:
+  parent: string, Required. The Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  pageSize: integer, Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.
+  pageToken: string, Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned from the ListConstraints method.
+  &quot;constraints&quot;: [ # The collection of constraints that are available on the targeted resource.
+    { # A `constraint` describes a way to restrict resource&#x27;s configuration. For example, you could enforce a constraint that controls which cloud services can be activated across an organization, or whether a Compute Engine instance can have serial port connections established. `Constraints` can be configured by the organization&#x27;s policy adminstrator to fit the needs of the organzation by setting a `policy` that includes `constraints` at different locations in the organization&#x27;s resource hierarchy. Policies are inherited down the resource hierarchy from higher levels, but can also be overridden. For details about the inheritance rules please read about `policies`. `Constraints` have a default behavior determined by the `constraint_default` field, which is the enforcement behavior that is used in the absence of a `policy` being defined or inherited for the resource in question.
+      &quot;booleanConstraint&quot;: { # A `Constraint` that is either enforced or not. For example a constraint `constraints/compute.disableSerialPortAccess`. If it is enforced on a VM instance, serial port connections will not be opened to that instance. # Defines this constraint as being a BooleanConstraint.
+      },
+      &quot;constraintDefault&quot;: &quot;A String&quot;, # The evaluation behavior of this constraint in the absence of &#x27;Policy&#x27;.
+      &quot;description&quot;: &quot;A String&quot;, # Detailed description of what this `Constraint` controls as well as how and where it is enforced. Mutable.
+      &quot;displayName&quot;: &quot;A String&quot;, # The human readable name. Mutable.
+      &quot;listConstraint&quot;: { # A `Constraint` that allows or disallows a list of string values, which are configured by an Organization&#x27;s policy administrator with a `Policy`. # Defines this constraint as being a ListConstraint.
+        &quot;supportsIn&quot;: True or False, # Indicates whether values grouped into categories can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `&quot;in:Python&quot;` would match any value in the &#x27;Python&#x27; group.
+        &quot;supportsUnder&quot;: True or False, # Indicates whether subtrees of Cloud Resource Manager resource hierarchy can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `&quot;under:folders/123&quot;` would match any resource under the &#x27;folders/123&#x27; folder.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Constraint. Must be in one of the following forms: * `projects/{project_number}/constraints/{constraint_name}` * `folders/{folder_id}/constraints/{constraint_name}` * `organizations/{organization_id}/constraints/{constraint_name}` For example, &quot;/projects/123/constraints/compute.disableSerialPortAccess&quot;.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token used to retrieve the next page. This is currently not used.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.folders.html b/docs/dyn/orgpolicy_v2.folders.html
new file mode 100644
index 0000000..ad1e968
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.folders.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.folders.html">folders</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.folders.constraints.html">constraints()</a></code>
+</p>
+<p class="firstline">Returns the constraints Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.folders.policies.html">policies()</a></code>
+</p>
+<p class="firstline">Returns the policies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.folders.policies.html b/docs/dyn/orgpolicy_v2.folders.policies.html
new file mode 100644
index 0000000..7f07329
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.folders.policies.html
@@ -0,0 +1,444 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.folders.html">folders</a> . <a href="orgpolicy_v2.folders.policies.html">policies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.</p>
+<p class="toc_element">
+  <code><a href="#getEffectivePolicy">getEffectivePolicy(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves all of the `Policies` that exist on a particular resource.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.
+
+Args:
+  parent: string, Required. The Cloud resource that will parent the new Policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.
+
+Args:
+  name: string, Required. Name of the policy to delete. See `Policy` for naming rules. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.
+
+Args:
+  name: string, Required. Resource name of the policy. See `Policy` for naming requirements. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getEffectivePolicy">getEffectivePolicy(name, x__xgafv=None)</code>
+  <pre>Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with &#x27;under:&#x27; prefix will not be expanded.
+
+Args:
+  name: string, Required. The effective policy to compute. See `Policy` for naming rules. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Retrieves all of the `Policies` that exist on a particular resource.
+
+Args:
+  parent: string, Required. The target Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  pageSize: integer, Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.
+  pageToken: string, Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned from the ListPolicies method. It will be empty if no `Policies` are set on the resource.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token used to retrieve the next page. This is currently not used, but the server may at any point start supplying a valid token.
+  &quot;policies&quot;: [ # All `Policies` that exist on the resource. It will be empty if no `Policies` are set.
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+      &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+        &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+        &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+        &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+        &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+          { # A rule used to express this policy.
+            &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+            &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+            &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+              &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+                &quot;A String&quot;,
+              ],
+              &quot;deniedValues&quot;: [ # List of values denied at this resource.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+        ],
+        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, x__xgafv=None)</code>
+  <pre>Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.
+
+Args:
+  name: string, Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.html b/docs/dyn/orgpolicy_v2.html
new file mode 100644
index 0000000..b132d84
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.html
@@ -0,0 +1,121 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.folders.html">folders()</a></code>
+</p>
+<p class="firstline">Returns the folders Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.organizations.html">organizations()</a></code>
+</p>
+<p class="firstline">Returns the organizations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.organizations.constraints.html b/docs/dyn/orgpolicy_v2.organizations.constraints.html
new file mode 100644
index 0000000..1d55d6c
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.organizations.constraints.html
@@ -0,0 +1,141 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.organizations.html">organizations</a> . <a href="orgpolicy_v2.organizations.constraints.html">constraints</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists `Constraints` that could be applied on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists `Constraints` that could be applied on the specified resource.
+
+Args:
+  parent: string, Required. The Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  pageSize: integer, Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.
+  pageToken: string, Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned from the ListConstraints method.
+  &quot;constraints&quot;: [ # The collection of constraints that are available on the targeted resource.
+    { # A `constraint` describes a way to restrict resource&#x27;s configuration. For example, you could enforce a constraint that controls which cloud services can be activated across an organization, or whether a Compute Engine instance can have serial port connections established. `Constraints` can be configured by the organization&#x27;s policy adminstrator to fit the needs of the organzation by setting a `policy` that includes `constraints` at different locations in the organization&#x27;s resource hierarchy. Policies are inherited down the resource hierarchy from higher levels, but can also be overridden. For details about the inheritance rules please read about `policies`. `Constraints` have a default behavior determined by the `constraint_default` field, which is the enforcement behavior that is used in the absence of a `policy` being defined or inherited for the resource in question.
+      &quot;booleanConstraint&quot;: { # A `Constraint` that is either enforced or not. For example a constraint `constraints/compute.disableSerialPortAccess`. If it is enforced on a VM instance, serial port connections will not be opened to that instance. # Defines this constraint as being a BooleanConstraint.
+      },
+      &quot;constraintDefault&quot;: &quot;A String&quot;, # The evaluation behavior of this constraint in the absence of &#x27;Policy&#x27;.
+      &quot;description&quot;: &quot;A String&quot;, # Detailed description of what this `Constraint` controls as well as how and where it is enforced. Mutable.
+      &quot;displayName&quot;: &quot;A String&quot;, # The human readable name. Mutable.
+      &quot;listConstraint&quot;: { # A `Constraint` that allows or disallows a list of string values, which are configured by an Organization&#x27;s policy administrator with a `Policy`. # Defines this constraint as being a ListConstraint.
+        &quot;supportsIn&quot;: True or False, # Indicates whether values grouped into categories can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `&quot;in:Python&quot;` would match any value in the &#x27;Python&#x27; group.
+        &quot;supportsUnder&quot;: True or False, # Indicates whether subtrees of Cloud Resource Manager resource hierarchy can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `&quot;under:folders/123&quot;` would match any resource under the &#x27;folders/123&#x27; folder.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Constraint. Must be in one of the following forms: * `projects/{project_number}/constraints/{constraint_name}` * `folders/{folder_id}/constraints/{constraint_name}` * `organizations/{organization_id}/constraints/{constraint_name}` For example, &quot;/projects/123/constraints/compute.disableSerialPortAccess&quot;.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token used to retrieve the next page. This is currently not used.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.organizations.html b/docs/dyn/orgpolicy_v2.organizations.html
new file mode 100644
index 0000000..4fb358d
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.organizations.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.organizations.html">organizations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.organizations.constraints.html">constraints()</a></code>
+</p>
+<p class="firstline">Returns the constraints Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.organizations.policies.html">policies()</a></code>
+</p>
+<p class="firstline">Returns the policies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.organizations.policies.html b/docs/dyn/orgpolicy_v2.organizations.policies.html
new file mode 100644
index 0000000..14dd0f9
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.organizations.policies.html
@@ -0,0 +1,444 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.organizations.html">organizations</a> . <a href="orgpolicy_v2.organizations.policies.html">policies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.</p>
+<p class="toc_element">
+  <code><a href="#getEffectivePolicy">getEffectivePolicy(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves all of the `Policies` that exist on a particular resource.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.
+
+Args:
+  parent: string, Required. The Cloud resource that will parent the new Policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.
+
+Args:
+  name: string, Required. Name of the policy to delete. See `Policy` for naming rules. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.
+
+Args:
+  name: string, Required. Resource name of the policy. See `Policy` for naming requirements. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getEffectivePolicy">getEffectivePolicy(name, x__xgafv=None)</code>
+  <pre>Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with &#x27;under:&#x27; prefix will not be expanded.
+
+Args:
+  name: string, Required. The effective policy to compute. See `Policy` for naming rules. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Retrieves all of the `Policies` that exist on a particular resource.
+
+Args:
+  parent: string, Required. The target Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  pageSize: integer, Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.
+  pageToken: string, Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned from the ListPolicies method. It will be empty if no `Policies` are set on the resource.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token used to retrieve the next page. This is currently not used, but the server may at any point start supplying a valid token.
+  &quot;policies&quot;: [ # All `Policies` that exist on the resource. It will be empty if no `Policies` are set.
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+      &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+        &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+        &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+        &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+        &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+          { # A rule used to express this policy.
+            &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+            &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+            &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+              &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+                &quot;A String&quot;,
+              ],
+              &quot;deniedValues&quot;: [ # List of values denied at this resource.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+        ],
+        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, x__xgafv=None)</code>
+  <pre>Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.
+
+Args:
+  name: string, Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.projects.constraints.html b/docs/dyn/orgpolicy_v2.projects.constraints.html
new file mode 100644
index 0000000..69eedd9
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.projects.constraints.html
@@ -0,0 +1,141 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.projects.html">projects</a> . <a href="orgpolicy_v2.projects.constraints.html">constraints</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists `Constraints` that could be applied on the specified resource.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists `Constraints` that could be applied on the specified resource.
+
+Args:
+  parent: string, Required. The Cloud resource that parents the constraint. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  pageSize: integer, Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.
+  pageToken: string, Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned from the ListConstraints method.
+  &quot;constraints&quot;: [ # The collection of constraints that are available on the targeted resource.
+    { # A `constraint` describes a way to restrict resource&#x27;s configuration. For example, you could enforce a constraint that controls which cloud services can be activated across an organization, or whether a Compute Engine instance can have serial port connections established. `Constraints` can be configured by the organization&#x27;s policy adminstrator to fit the needs of the organzation by setting a `policy` that includes `constraints` at different locations in the organization&#x27;s resource hierarchy. Policies are inherited down the resource hierarchy from higher levels, but can also be overridden. For details about the inheritance rules please read about `policies`. `Constraints` have a default behavior determined by the `constraint_default` field, which is the enforcement behavior that is used in the absence of a `policy` being defined or inherited for the resource in question.
+      &quot;booleanConstraint&quot;: { # A `Constraint` that is either enforced or not. For example a constraint `constraints/compute.disableSerialPortAccess`. If it is enforced on a VM instance, serial port connections will not be opened to that instance. # Defines this constraint as being a BooleanConstraint.
+      },
+      &quot;constraintDefault&quot;: &quot;A String&quot;, # The evaluation behavior of this constraint in the absence of &#x27;Policy&#x27;.
+      &quot;description&quot;: &quot;A String&quot;, # Detailed description of what this `Constraint` controls as well as how and where it is enforced. Mutable.
+      &quot;displayName&quot;: &quot;A String&quot;, # The human readable name. Mutable.
+      &quot;listConstraint&quot;: { # A `Constraint` that allows or disallows a list of string values, which are configured by an Organization&#x27;s policy administrator with a `Policy`. # Defines this constraint as being a ListConstraint.
+        &quot;supportsIn&quot;: True or False, # Indicates whether values grouped into categories can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `&quot;in:Python&quot;` would match any value in the &#x27;Python&#x27; group.
+        &quot;supportsUnder&quot;: True or False, # Indicates whether subtrees of Cloud Resource Manager resource hierarchy can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `&quot;under:folders/123&quot;` would match any resource under the &#x27;folders/123&#x27; folder.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Constraint. Must be in one of the following forms: * `projects/{project_number}/constraints/{constraint_name}` * `folders/{folder_id}/constraints/{constraint_name}` * `organizations/{organization_id}/constraints/{constraint_name}` For example, &quot;/projects/123/constraints/compute.disableSerialPortAccess&quot;.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token used to retrieve the next page. This is currently not used.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.projects.html b/docs/dyn/orgpolicy_v2.projects.html
new file mode 100644
index 0000000..ffe3eca
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.projects.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.projects.constraints.html">constraints()</a></code>
+</p>
+<p class="firstline">Returns the constraints Resource.</p>
+
+<p class="toc_element">
+  <code><a href="orgpolicy_v2.projects.policies.html">policies()</a></code>
+</p>
+<p class="firstline">Returns the policies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/orgpolicy_v2.projects.policies.html b/docs/dyn/orgpolicy_v2.projects.policies.html
new file mode 100644
index 0000000..3eb1ce4
--- /dev/null
+++ b/docs/dyn/orgpolicy_v2.projects.policies.html
@@ -0,0 +1,444 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="orgpolicy_v2.html">Organization Policy API</a> . <a href="orgpolicy_v2.projects.html">projects</a> . <a href="orgpolicy_v2.projects.policies.html">policies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.</p>
+<p class="toc_element">
+  <code><a href="#getEffectivePolicy">getEffectivePolicy(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with 'under:' prefix will not be expanded.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves all of the `Policies` that exist on a particular resource.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint does not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ALREADY_EXISTS` if the policy already exists on the given Cloud resource.
+
+Args:
+  parent: string, Required. The Cloud resource that will parent the new Policy. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or Org Policy does not exist.
+
+Args:
+  name: string, Required. Name of the policy to delete. See `Policy` for naming rules. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a `Policy` on a resource. If no `Policy` is set on the resource, NOT_FOUND is returned. The `etag` value can be used with `UpdatePolicy()` to update a `Policy` during read-modify-write.
+
+Args:
+  name: string, Required. Resource name of the policy. See `Policy` for naming requirements. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getEffectivePolicy">getEffectivePolicy(name, x__xgafv=None)</code>
+  <pre>Gets the effective `Policy` on a resource. This is the result of merging `Policies` in the resource hierarchy and evaluating conditions. The returned `Policy` will not have an `etag` or `condition` set because it is a computed `Policy` across multiple resources. Subtrees of Resource Manager resource hierarchy with &#x27;under:&#x27; prefix will not be expanded.
+
+Args:
+  name: string, Required. The effective policy to compute. See `Policy` for naming rules. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Retrieves all of the `Policies` that exist on a particular resource.
+
+Args:
+  parent: string, Required. The target Cloud resource that parents the set of constraints and policies that will be returned from this call. Must be in one of the following forms: * `projects/{project_number}` * `projects/{project_id}` * `folders/{folder_id}` * `organizations/{organization_id}` (required)
+  pageSize: integer, Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.
+  pageToken: string, Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response returned from the ListPolicies method. It will be empty if no `Policies` are set on the resource.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token used to retrieve the next page. This is currently not used, but the server may at any point start supplying a valid token.
+  &quot;policies&quot;: [ # All `Policies` that exist on the resource. It will be empty if no `Policies` are set.
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+      &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+      &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+        &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+        &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+        &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+        &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+          { # A rule used to express this policy.
+            &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+            &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+            &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+              &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+                &quot;A String&quot;,
+              ],
+              &quot;deniedValues&quot;: [ # List of values denied at this resource.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+        ],
+        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, x__xgafv=None)</code>
+  <pre>Updates a Policy. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the constraint or the policy do not exist. Returns a `google.rpc.Status` with `google.rpc.Code.ABORTED` if the etag supplied in the request does not match the persisted etag of the policy Note: the supplied policy will perform a full overwrite of all fields.
+
+Args:
+  name: string, Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Defines a Cloud Organization `Policy` which is used to specify `Constraints` for configurations of Cloud Platform resources.
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. The resource name of the Policy. Must be one of the following forms, where constraint_name is the name of the constraint which this Policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, &quot;projects/123/policies/compute.disableSerialPortAccess&quot;. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.
+  &quot;spec&quot;: { # Defines a Cloud Organization `PolicySpec` which is used to specify `Constraints` for configurations of Cloud Platform resources. # Basic information about the Organization Policy.
+    &quot;etag&quot;: &quot;A String&quot;, # An opaque tag indicating the current version of the `Policy`, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the `Policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current `Policy` to use when executing a read-modify-write loop. When the `Policy` is returned from a `GetEffectivePolicy` request, the `etag` will be unset.
+    &quot;inheritFromParent&quot;: True or False, # Determines the inheritance behavior for this `Policy`. If `inherit_from_parent` is true, PolicyRules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this Policy becomes the new root for evaluation. This field can be set only for Policies which configure list constraints.
+    &quot;reset&quot;: True or False, # Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific `Constraint` at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.
+    &quot;rules&quot;: [ # Up to 10 PolicyRules are allowed. In Policies for boolean constraints, the following requirements apply: - There must be one and only one PolicyRule where condition is unset. - BooleanPolicyRules with conditions must set `enforced` to the opposite of the PolicyRule without a condition. - During policy evaluation, PolicyRules with conditions that are true for a target resource take precedence.
+      { # A rule used to express this policy.
+        &quot;allowAll&quot;: True or False, # Setting this to true means that all values are allowed. This field can be set only in Policies for list constraints.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr&#x27; must include from 1 to 10 subexpressions, joined by the &quot;||&quot; or &quot;&amp;&amp;&quot; operators. Each subexpression must be of the form &quot;resource.matchTag(&#x27;/tag_key_short_name, &#x27;tag_value_short_name&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/key_id&#x27;, &#x27;tagValues/value_id&#x27;)&quot;. where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: &quot;resource.matchTag(&#x27;123456789/environment, &#x27;prod&#x27;)&quot;. or &quot;resource.matchTagId(&#x27;tagKeys/123&#x27;, &#x27;tagValues/456&#x27;)&quot;.
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+        },
+        &quot;denyAll&quot;: True or False, # Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.
+        &quot;enforce&quot;: True or False, # If `true`, then the `Policy` is enforced. If `false`, then any configuration is acceptable. This field can be set only in Policies for boolean constraints.
+        &quot;values&quot;: { # A message that holds specific allowed and denied values. This message can define specific values and subtrees of Cloud Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a &quot;:&quot;. Values prefixed with &quot;is:&quot; are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - &quot;projects/&quot;, e.g. &quot;projects/tokyo-rain-123&quot; - &quot;folders/&quot;, e.g. &quot;folders/1234&quot; - &quot;organizations/&quot;, e.g. &quot;organizations/1234&quot; The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used. # List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints.
+          &quot;allowedValues&quot;: [ # List of values allowed at this resource.
+            &quot;A String&quot;,
+          ],
+          &quot;deniedValues&quot;: [ # List of values denied at this resource.
+            &quot;A String&quot;,
+          ],
+        },
+      },
+    ],
+    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that `Policy`.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/oslogin_v1alpha.users.html b/docs/dyn/oslogin_v1alpha.users.html
index 5d6ed56..737e56d 100644
--- a/docs/dyn/oslogin_v1alpha.users.html
+++ b/docs/dyn/oslogin_v1alpha.users.html
@@ -88,10 +88,10 @@
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
-  <code><a href="#getLoginProfile">getLoginProfile(name, operatingSystemType=None, projectId=None, systemId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#getLoginProfile">getLoginProfile(name, operatingSystemType=None, projectId=None, systemId=None, view=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Retrieves the profile information used for logging in to a virtual machine on Google Compute Engine.</p>
 <p class="toc_element">
-  <code><a href="#importSshPublicKey">importSshPublicKey(parent, body=None, projectId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#importSshPublicKey">importSshPublicKey(parent, body=None, projectId=None, view=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Adds an SSH public key and returns the profile information. Default POSIX account information is set when no username and UID exist as part of the login profile.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -100,7 +100,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="getLoginProfile">getLoginProfile(name, operatingSystemType=None, projectId=None, systemId=None, x__xgafv=None)</code>
+    <code class="details" id="getLoginProfile">getLoginProfile(name, operatingSystemType=None, projectId=None, systemId=None, view=None, x__xgafv=None)</code>
   <pre>Retrieves the profile information used for logging in to a virtual machine on Google Compute Engine.
 
 Args:
@@ -112,6 +112,11 @@
       WINDOWS - Windows user account information.
   projectId: string, The project ID of the Google Cloud Platform project.
   systemId: string, A system ID for filtering the results of the request.
+  view: string, The view configures whether to retrieve security keys information.
+    Allowed values
+      VIEW_UNSPECIFIED - The default login profile view. The API defaults to the BASIC view.
+      BASIC - Includes POSIX and SSH key information.
+      SECURITY_KEY - Include security key information for the user.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -149,7 +154,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="importSshPublicKey">importSshPublicKey(parent, body=None, projectId=None, x__xgafv=None)</code>
+    <code class="details" id="importSshPublicKey">importSshPublicKey(parent, body=None, projectId=None, view=None, x__xgafv=None)</code>
   <pre>Adds an SSH public key and returns the profile information. Default POSIX account information is set when no username and UID exist as part of the login profile.
 
 Args:
@@ -165,6 +170,11 @@
 }
 
   projectId: string, The project ID of the Google Cloud Platform project.
+  view: string, The view configures whether to retrieve security keys information.
+    Allowed values
+      VIEW_UNSPECIFIED - The default login profile view. The API defaults to the BASIC view.
+      BASIC - Includes POSIX and SSH key information.
+      SECURITY_KEY - Include security key information for the user.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/people_v1.otherContacts.html b/docs/dyn/people_v1.otherContacts.html
index 6a07403..46305c5 100644
--- a/docs/dyn/people_v1.otherContacts.html
+++ b/docs/dyn/people_v1.otherContacts.html
@@ -88,7 +88,7 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#search">search(pageSize=None, query=None, readMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Provides a list of contacts in the authenticated user's other contacts that matches the search query.</p>
+<p class="firstline">Provides a list of contacts in the authenticated user's other contacts that matches the search query. The query matches on a contact's `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -1848,7 +1848,7 @@
 
 <div class="method">
     <code class="details" id="search">search(pageSize=None, query=None, readMask=None, x__xgafv=None)</code>
-  <pre>Provides a list of contacts in the authenticated user&#x27;s other contacts that matches the search query.
+  <pre>Provides a list of contacts in the authenticated user&#x27;s other contacts that matches the search query. The query matches on a contact&#x27;s `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source.
 
 Args:
   pageSize: integer, Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0.
diff --git a/docs/dyn/people_v1.people.html b/docs/dyn/people_v1.people.html
index 5d6a637..5cf94de 100644
--- a/docs/dyn/people_v1.people.html
+++ b/docs/dyn/people_v1.people.html
@@ -81,13 +81,13 @@
 
 <p class="toc_element">
   <code><a href="#batchCreateContacts">batchCreateContacts(body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Create a batch of new contacts and return the PersonResponses for the newly created contacts.</p>
+<p class="firstline">Create a batch of new contacts and return the PersonResponses for the newly created contacts. Limited to 10 parallel requests per user.</p>
 <p class="toc_element">
   <code><a href="#batchDeleteContacts">batchDeleteContacts(body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Delete a batch of contacts. Any non-contact data will not be deleted.</p>
+<p class="firstline">Delete a batch of contacts. Any non-contact data will not be deleted. Limited to 10 parallel requests per user.</p>
 <p class="toc_element">
   <code><a href="#batchUpdateContacts">batchUpdateContacts(body=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts.</p>
+<p class="firstline">Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts. Limited to 10 parallel requests per user.</p>
 <p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
@@ -113,8 +113,8 @@
   <code><a href="#listDirectoryPeople_next">listDirectoryPeople_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
-  <code><a href="#searchContacts">searchContacts(pageSize=None, query=None, readMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Provides a list of contacts in the authenticated user's grouped contacts that matches the search query.</p>
+  <code><a href="#searchContacts">searchContacts(pageSize=None, query=None, readMask=None, sources=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Provides a list of contacts in the authenticated user's grouped contacts that matches the search query. The query matches on a contact's `names`, `nickNames`, `emailAddresses`, `phoneNumbers`, and `organizations` fields that are from the CONTACT" source.</p>
 <p class="toc_element">
   <code><a href="#searchDirectoryPeople">searchDirectoryPeople(mergeSources=None, pageSize=None, pageToken=None, query=None, readMask=None, sources=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query.</p>
@@ -130,7 +130,7 @@
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="batchCreateContacts">batchCreateContacts(body=None, x__xgafv=None)</code>
-  <pre>Create a batch of new contacts and return the PersonResponses for the newly created contacts.
+  <pre>Create a batch of new contacts and return the PersonResponses for the newly created contacts. Limited to 10 parallel requests per user.
 
 Args:
   body: object, The request body.
@@ -1860,7 +1860,7 @@
 
 <div class="method">
     <code class="details" id="batchDeleteContacts">batchDeleteContacts(body=None, x__xgafv=None)</code>
-  <pre>Delete a batch of contacts. Any non-contact data will not be deleted.
+  <pre>Delete a batch of contacts. Any non-contact data will not be deleted. Limited to 10 parallel requests per user.
 
 Args:
   body: object, The request body.
@@ -1886,7 +1886,7 @@
 
 <div class="method">
     <code class="details" id="batchUpdateContacts">batchUpdateContacts(body=None, x__xgafv=None)</code>
-  <pre>Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts.
+  <pre>Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts. Limited to 10 parallel requests per user.
 
 Args:
   body: object, The request body.
@@ -8854,13 +8854,19 @@
 </div>
 
 <div class="method">
-    <code class="details" id="searchContacts">searchContacts(pageSize=None, query=None, readMask=None, x__xgafv=None)</code>
-  <pre>Provides a list of contacts in the authenticated user&#x27;s grouped contacts that matches the search query.
+    <code class="details" id="searchContacts">searchContacts(pageSize=None, query=None, readMask=None, sources=None, x__xgafv=None)</code>
+  <pre>Provides a list of contacts in the authenticated user&#x27;s grouped contacts that matches the search query. The query matches on a contact&#x27;s `names`, `nickNames`, `emailAddresses`, `phoneNumbers`, and `organizations` fields that are from the CONTACT&quot; source.
 
 Args:
   pageSize: integer, Optional. The number of results to return.
   query: string, Required. The plain-text query for the request. The query is used to match prefix phrases of the fields on a person. For example, a person with name &quot;foo name&quot; matches queries such as &quot;f&quot;, &quot;fo&quot;, &quot;foo&quot;, &quot;foo n&quot;, &quot;nam&quot;, etc., but not &quot;oo n&quot;.
   readMask: string, Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined
+  sources: string, Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set. (repeated)
+    Allowed values
+      READ_SOURCE_TYPE_UNSPECIFIED - Unspecified.
+      READ_SOURCE_TYPE_PROFILE - Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.
+      READ_SOURCE_TYPE_CONTACT - Returns SourceType.CONTACT.
+      READ_SOURCE_TYPE_DOMAIN_CONTACT - Returns SourceType.DOMAIN_CONTACT.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/policysimulator_v1.folders.html b/docs/dyn/policysimulator_v1.folders.html
new file mode 100644
index 0000000..0820b37
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.folders.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.folders.html">folders</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.folders.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.folders.locations.html b/docs/dyn/policysimulator_v1.folders.locations.html
new file mode 100644
index 0000000..ee78178
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.folders.locations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.folders.html">folders</a> . <a href="policysimulator_v1.folders.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.folders.locations.replays.html">replays()</a></code>
+</p>
+<p class="firstline">Returns the replays Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.folders.locations.replays.html b/docs/dyn/policysimulator_v1.folders.locations.replays.html
new file mode 100644
index 0000000..d313673
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.folders.locations.replays.html
@@ -0,0 +1,264 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.folders.html">folders</a> . <a href="policysimulator_v1.folders.locations.html">locations</a> . <a href="policysimulator_v1.folders.locations.replays.html">replays</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.folders.locations.replays.results.html">results()</a></code>
+</p>
+<p class="firstline">Returns the results Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and starts a Replay using the given ReplayConfig.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified Replay. Each `Replay` is available for at least 7 days.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates and starts a Replay using the given ReplayConfig.
+
+Args:
+  parent: string, Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified Replay. Each `Replay` is available for at least 7 days.
+
+Args:
+  name: string, Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.folders.locations.replays.results.html b/docs/dyn/policysimulator_v1.folders.locations.replays.results.html
new file mode 100644
index 0000000..edbda9d
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.folders.locations.replays.results.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.folders.html">folders</a> . <a href="policysimulator_v1.folders.locations.html">locations</a> . <a href="policysimulator_v1.folders.locations.replays.html">replays</a> . <a href="policysimulator_v1.folders.locations.replays.results.html">results</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the results of running a Replay.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the results of running a Replay.
+
+Args:
+  parent: string, Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  pageSize: integer, The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.
+  pageToken: string, A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Simulator.ListReplayResults.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.
+  &quot;replayResults&quot;: [ # The results of running a Replay.
+    { # The result of replaying a single access tuple against a simulated state.
+      &quot;accessTuple&quot;: { # Information about the member, resource, and permission to check. # The access tuple that was replayed. This field includes information about the member, resource, and permission that were involved in the access attempt.
+        &quot;fullResourceName&quot;: &quot;A String&quot;, # Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+        &quot;permission&quot;: &quot;A String&quot;, # Required. The IAM permission to check for the specified member and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+        &quot;principal&quot;: &quot;A String&quot;, # Required. The member, or principal, whose access you want to check, in the form of the email address that represents that member. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The member must be a Google Account or a service account. Other types of members are not supported.
+      },
+      &quot;diff&quot;: { # The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a member&#x27;s access could change if the proposed policies were applied. # The difference between the member&#x27;s access under the current (baseline) policies and the member&#x27;s access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies.
+        &quot;accessDiff&quot;: { # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the member&#x27;s access is reported in the AccessState field.
+          &quot;accessChange&quot;: &quot;A String&quot;, # How the member&#x27;s access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.
+          &quot;baseline&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+          &quot;simulated&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+        },
+      },
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;lastSeenDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The latest date this access tuple was seen in the logs.
+        &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+        &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
+      &quot;parent&quot;: &quot;A String&quot;, # The Replay that the access tuple was included in.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.html b/docs/dyn/policysimulator_v1.html
new file mode 100644
index 0000000..759c75e
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.html
@@ -0,0 +1,126 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.folders.html">folders()</a></code>
+</p>
+<p class="firstline">Returns the folders Resource.</p>
+
+<p class="toc_element">
+  <code><a href="policysimulator_v1.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="policysimulator_v1.organizations.html">organizations()</a></code>
+</p>
+<p class="firstline">Returns the organizations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="policysimulator_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.operations.html b/docs/dyn/policysimulator_v1.operations.html
new file mode 100644
index 0000000..bc2581b
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(filter=None, name=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(filter=None, name=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  filter: string, The standard list filter.
+  name: string, The name of the operation&#x27;s parent resource.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.organizations.html b/docs/dyn/policysimulator_v1.organizations.html
new file mode 100644
index 0000000..f97aedc
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.organizations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.organizations.html">organizations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.organizations.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.organizations.locations.html b/docs/dyn/policysimulator_v1.organizations.locations.html
new file mode 100644
index 0000000..0d99681
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.organizations.locations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.organizations.html">organizations</a> . <a href="policysimulator_v1.organizations.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.organizations.locations.replays.html">replays()</a></code>
+</p>
+<p class="firstline">Returns the replays Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.organizations.locations.replays.html b/docs/dyn/policysimulator_v1.organizations.locations.replays.html
new file mode 100644
index 0000000..bdf5806
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.organizations.locations.replays.html
@@ -0,0 +1,264 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.organizations.html">organizations</a> . <a href="policysimulator_v1.organizations.locations.html">locations</a> . <a href="policysimulator_v1.organizations.locations.replays.html">replays</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.organizations.locations.replays.results.html">results()</a></code>
+</p>
+<p class="firstline">Returns the results Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and starts a Replay using the given ReplayConfig.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified Replay. Each `Replay` is available for at least 7 days.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates and starts a Replay using the given ReplayConfig.
+
+Args:
+  parent: string, Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified Replay. Each `Replay` is available for at least 7 days.
+
+Args:
+  name: string, Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.organizations.locations.replays.results.html b/docs/dyn/policysimulator_v1.organizations.locations.replays.results.html
new file mode 100644
index 0000000..1dca2fb
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.organizations.locations.replays.results.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.organizations.html">organizations</a> . <a href="policysimulator_v1.organizations.locations.html">locations</a> . <a href="policysimulator_v1.organizations.locations.replays.html">replays</a> . <a href="policysimulator_v1.organizations.locations.replays.results.html">results</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the results of running a Replay.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the results of running a Replay.
+
+Args:
+  parent: string, Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  pageSize: integer, The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.
+  pageToken: string, A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Simulator.ListReplayResults.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.
+  &quot;replayResults&quot;: [ # The results of running a Replay.
+    { # The result of replaying a single access tuple against a simulated state.
+      &quot;accessTuple&quot;: { # Information about the member, resource, and permission to check. # The access tuple that was replayed. This field includes information about the member, resource, and permission that were involved in the access attempt.
+        &quot;fullResourceName&quot;: &quot;A String&quot;, # Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+        &quot;permission&quot;: &quot;A String&quot;, # Required. The IAM permission to check for the specified member and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+        &quot;principal&quot;: &quot;A String&quot;, # Required. The member, or principal, whose access you want to check, in the form of the email address that represents that member. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The member must be a Google Account or a service account. Other types of members are not supported.
+      },
+      &quot;diff&quot;: { # The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a member&#x27;s access could change if the proposed policies were applied. # The difference between the member&#x27;s access under the current (baseline) policies and the member&#x27;s access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies.
+        &quot;accessDiff&quot;: { # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the member&#x27;s access is reported in the AccessState field.
+          &quot;accessChange&quot;: &quot;A String&quot;, # How the member&#x27;s access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.
+          &quot;baseline&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+          &quot;simulated&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+        },
+      },
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;lastSeenDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The latest date this access tuple was seen in the logs.
+        &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+        &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
+      &quot;parent&quot;: &quot;A String&quot;, # The Replay that the access tuple was included in.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.projects.html b/docs/dyn/policysimulator_v1.projects.html
new file mode 100644
index 0000000..60da25a
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.projects.locations.html b/docs/dyn/policysimulator_v1.projects.locations.html
new file mode 100644
index 0000000..309dcfc
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.projects.locations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.projects.html">projects</a> . <a href="policysimulator_v1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.projects.locations.replays.html">replays()</a></code>
+</p>
+<p class="firstline">Returns the replays Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.projects.locations.replays.html b/docs/dyn/policysimulator_v1.projects.locations.replays.html
new file mode 100644
index 0000000..db91a0e
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.projects.locations.replays.html
@@ -0,0 +1,264 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.projects.html">projects</a> . <a href="policysimulator_v1.projects.locations.html">locations</a> . <a href="policysimulator_v1.projects.locations.replays.html">replays</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1.projects.locations.replays.results.html">results()</a></code>
+</p>
+<p class="firstline">Returns the results Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and starts a Replay using the given ReplayConfig.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified Replay. Each `Replay` is available for at least 7 days.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates and starts a Replay using the given ReplayConfig.
+
+Args:
+  parent: string, Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified Replay. Each `Replay` is available for at least 7 days.
+
+Args:
+  name: string, Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1.projects.locations.replays.results.html b/docs/dyn/policysimulator_v1.projects.locations.replays.results.html
new file mode 100644
index 0000000..c130f27
--- /dev/null
+++ b/docs/dyn/policysimulator_v1.projects.locations.replays.results.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1.html">Policy Simulator API</a> . <a href="policysimulator_v1.projects.html">projects</a> . <a href="policysimulator_v1.projects.locations.html">locations</a> . <a href="policysimulator_v1.projects.locations.replays.html">replays</a> . <a href="policysimulator_v1.projects.locations.replays.results.html">results</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the results of running a Replay.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the results of running a Replay.
+
+Args:
+  parent: string, Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  pageSize: integer, The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.
+  pageToken: string, A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Simulator.ListReplayResults.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.
+  &quot;replayResults&quot;: [ # The results of running a Replay.
+    { # The result of replaying a single access tuple against a simulated state.
+      &quot;accessTuple&quot;: { # Information about the member, resource, and permission to check. # The access tuple that was replayed. This field includes information about the member, resource, and permission that were involved in the access attempt.
+        &quot;fullResourceName&quot;: &quot;A String&quot;, # Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+        &quot;permission&quot;: &quot;A String&quot;, # Required. The IAM permission to check for the specified member and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+        &quot;principal&quot;: &quot;A String&quot;, # Required. The member, or principal, whose access you want to check, in the form of the email address that represents that member. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The member must be a Google Account or a service account. Other types of members are not supported.
+      },
+      &quot;diff&quot;: { # The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a member&#x27;s access could change if the proposed policies were applied. # The difference between the member&#x27;s access under the current (baseline) policies and the member&#x27;s access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies.
+        &quot;accessDiff&quot;: { # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the member&#x27;s access is reported in the AccessState field.
+          &quot;accessChange&quot;: &quot;A String&quot;, # How the member&#x27;s access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.
+          &quot;baseline&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+          &quot;simulated&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+        },
+      },
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;lastSeenDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The latest date this access tuple was seen in the logs.
+        &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+        &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
+      &quot;parent&quot;: &quot;A String&quot;, # The Replay that the access tuple was included in.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.folders.html b/docs/dyn/policysimulator_v1beta1.folders.html
new file mode 100644
index 0000000..6dcfae6
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.folders.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.folders.html">folders</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.folders.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.folders.locations.html b/docs/dyn/policysimulator_v1beta1.folders.locations.html
new file mode 100644
index 0000000..6b82a0b
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.folders.locations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.folders.html">folders</a> . <a href="policysimulator_v1beta1.folders.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.folders.locations.replays.html">replays()</a></code>
+</p>
+<p class="firstline">Returns the replays Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.folders.locations.replays.html b/docs/dyn/policysimulator_v1beta1.folders.locations.replays.html
new file mode 100644
index 0000000..05efa50
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.folders.locations.replays.html
@@ -0,0 +1,264 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.folders.html">folders</a> . <a href="policysimulator_v1beta1.folders.locations.html">locations</a> . <a href="policysimulator_v1beta1.folders.locations.replays.html">replays</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.folders.locations.replays.results.html">results()</a></code>
+</p>
+<p class="firstline">Returns the results Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and starts a Replay using the given ReplayConfig.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified Replay. Each `Replay` is available for at least 7 days.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates and starts a Replay using the given ReplayConfig.
+
+Args:
+  parent: string, Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified Replay. Each `Replay` is available for at least 7 days.
+
+Args:
+  name: string, Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.folders.locations.replays.results.html b/docs/dyn/policysimulator_v1beta1.folders.locations.replays.results.html
new file mode 100644
index 0000000..e26f230
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.folders.locations.replays.results.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.folders.html">folders</a> . <a href="policysimulator_v1beta1.folders.locations.html">locations</a> . <a href="policysimulator_v1beta1.folders.locations.replays.html">replays</a> . <a href="policysimulator_v1beta1.folders.locations.replays.results.html">results</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the results of running a Replay.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the results of running a Replay.
+
+Args:
+  parent: string, Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  pageSize: integer, The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.
+  pageToken: string, A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Simulator.ListReplayResults.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.
+  &quot;replayResults&quot;: [ # The results of running a Replay.
+    { # The result of replaying a single access tuple against a simulated state.
+      &quot;accessTuple&quot;: { # Information about the member, resource, and permission to check. # The access tuple that was replayed. This field includes information about the member, resource, and permission that were involved in the access attempt.
+        &quot;fullResourceName&quot;: &quot;A String&quot;, # Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+        &quot;permission&quot;: &quot;A String&quot;, # Required. The IAM permission to check for the specified member and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+        &quot;principal&quot;: &quot;A String&quot;, # Required. The member, or principal, whose access you want to check, in the form of the email address that represents that member. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The member must be a Google Account or a service account. Other types of members are not supported.
+      },
+      &quot;diff&quot;: { # The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a member&#x27;s access could change if the proposed policies were applied. # The difference between the member&#x27;s access under the current (baseline) policies and the member&#x27;s access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies.
+        &quot;accessDiff&quot;: { # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the member&#x27;s access is reported in the AccessState field.
+          &quot;accessChange&quot;: &quot;A String&quot;, # How the member&#x27;s access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.
+          &quot;baseline&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+          &quot;simulated&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+        },
+      },
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;lastSeenDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The latest date this access tuple was seen in the logs.
+        &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+        &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
+      &quot;parent&quot;: &quot;A String&quot;, # The Replay that the access tuple was included in.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.html b/docs/dyn/policysimulator_v1beta1.html
new file mode 100644
index 0000000..37a2690
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.html
@@ -0,0 +1,126 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.folders.html">folders()</a></code>
+</p>
+<p class="firstline">Returns the folders Resource.</p>
+
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.organizations.html">organizations()</a></code>
+</p>
+<p class="firstline">Returns the organizations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.operations.html b/docs/dyn/policysimulator_v1beta1.operations.html
new file mode 100644
index 0000000..6a327f3
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(filter=None, name=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(filter=None, name=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  filter: string, The standard list filter.
+  name: string, The name of the operation&#x27;s parent resource.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.organizations.html b/docs/dyn/policysimulator_v1beta1.organizations.html
new file mode 100644
index 0000000..c9ee050
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.organizations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.organizations.html">organizations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.organizations.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.organizations.locations.html b/docs/dyn/policysimulator_v1beta1.organizations.locations.html
new file mode 100644
index 0000000..802c1c8
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.organizations.locations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.organizations.html">organizations</a> . <a href="policysimulator_v1beta1.organizations.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.organizations.locations.replays.html">replays()</a></code>
+</p>
+<p class="firstline">Returns the replays Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.organizations.locations.replays.html b/docs/dyn/policysimulator_v1beta1.organizations.locations.replays.html
new file mode 100644
index 0000000..fde5d58
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.organizations.locations.replays.html
@@ -0,0 +1,264 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.organizations.html">organizations</a> . <a href="policysimulator_v1beta1.organizations.locations.html">locations</a> . <a href="policysimulator_v1beta1.organizations.locations.replays.html">replays</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.organizations.locations.replays.results.html">results()</a></code>
+</p>
+<p class="firstline">Returns the results Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and starts a Replay using the given ReplayConfig.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified Replay. Each `Replay` is available for at least 7 days.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates and starts a Replay using the given ReplayConfig.
+
+Args:
+  parent: string, Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified Replay. Each `Replay` is available for at least 7 days.
+
+Args:
+  name: string, Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.organizations.locations.replays.results.html b/docs/dyn/policysimulator_v1beta1.organizations.locations.replays.results.html
new file mode 100644
index 0000000..b6d8cdc
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.organizations.locations.replays.results.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.organizations.html">organizations</a> . <a href="policysimulator_v1beta1.organizations.locations.html">locations</a> . <a href="policysimulator_v1beta1.organizations.locations.replays.html">replays</a> . <a href="policysimulator_v1beta1.organizations.locations.replays.results.html">results</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the results of running a Replay.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the results of running a Replay.
+
+Args:
+  parent: string, Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  pageSize: integer, The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.
+  pageToken: string, A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Simulator.ListReplayResults.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.
+  &quot;replayResults&quot;: [ # The results of running a Replay.
+    { # The result of replaying a single access tuple against a simulated state.
+      &quot;accessTuple&quot;: { # Information about the member, resource, and permission to check. # The access tuple that was replayed. This field includes information about the member, resource, and permission that were involved in the access attempt.
+        &quot;fullResourceName&quot;: &quot;A String&quot;, # Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+        &quot;permission&quot;: &quot;A String&quot;, # Required. The IAM permission to check for the specified member and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+        &quot;principal&quot;: &quot;A String&quot;, # Required. The member, or principal, whose access you want to check, in the form of the email address that represents that member. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The member must be a Google Account or a service account. Other types of members are not supported.
+      },
+      &quot;diff&quot;: { # The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a member&#x27;s access could change if the proposed policies were applied. # The difference between the member&#x27;s access under the current (baseline) policies and the member&#x27;s access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies.
+        &quot;accessDiff&quot;: { # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the member&#x27;s access is reported in the AccessState field.
+          &quot;accessChange&quot;: &quot;A String&quot;, # How the member&#x27;s access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.
+          &quot;baseline&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+          &quot;simulated&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+        },
+      },
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;lastSeenDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The latest date this access tuple was seen in the logs.
+        &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+        &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
+      &quot;parent&quot;: &quot;A String&quot;, # The Replay that the access tuple was included in.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.projects.html b/docs/dyn/policysimulator_v1beta1.projects.html
new file mode 100644
index 0000000..63686a7
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.projects.locations.html b/docs/dyn/policysimulator_v1beta1.projects.locations.html
new file mode 100644
index 0000000..090bfdf
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.projects.locations.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.projects.html">projects</a> . <a href="policysimulator_v1beta1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.projects.locations.replays.html">replays()</a></code>
+</p>
+<p class="firstline">Returns the replays Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.projects.locations.replays.html b/docs/dyn/policysimulator_v1beta1.projects.locations.replays.html
new file mode 100644
index 0000000..772177f
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.projects.locations.replays.html
@@ -0,0 +1,264 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.projects.html">projects</a> . <a href="policysimulator_v1beta1.projects.locations.html">locations</a> . <a href="policysimulator_v1beta1.projects.locations.replays.html">replays</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="policysimulator_v1beta1.projects.locations.replays.results.html">results()</a></code>
+</p>
+<p class="firstline">Returns the results Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates and starts a Replay using the given ReplayConfig.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the specified Replay. Each `Replay` is available for at least 7 days.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates and starts a Replay using the given ReplayConfig.
+
+Args:
+  parent: string, Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the specified Replay. Each `Replay` is available for at least 7 days.
+
+Args:
+  name: string, Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource describing a `Replay`, or simulation.
+  &quot;config&quot;: { # The configuration used for a Replay. # Required. The configuration used for the `Replay`.
+    &quot;logSource&quot;: &quot;A String&quot;, # The logs to use as input for the Replay.
+    &quot;policyOverlay&quot;: { # A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.
+      &quot;a_key&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+        &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+          { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+            &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+              { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                  &quot;A String&quot;,
+                ],
+                &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+              },
+            ],
+            &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+          },
+        ],
+        &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+          { # Associates `members` with a `role`.
+            &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+              &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+              &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+              &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+              &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+            },
+            &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+              &quot;A String&quot;,
+            ],
+            &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+          },
+        ],
+        &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+        &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+      },
+    },
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`
+  &quot;resultsSummary&quot;: { # Summary statistics about the replayed log entries. # Output only. Summary statistics about the replayed log entries.
+    &quot;differenceCount&quot;: 42, # The number of replayed log entries with a difference between baseline and simulated policies.
+    &quot;errorCount&quot;: 42, # The number of log entries that could not be replayed.
+    &quot;logCount&quot;: 42, # The total number of log entries replayed.
+    &quot;newestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the newest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;oldestDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The date of the oldest log entry replayed.
+      &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+      &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+      &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+    },
+    &quot;unchangedCount&quot;: 42, # The number of replayed log entries with no difference between baseline and simulated policies.
+  },
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the `Replay`.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/policysimulator_v1beta1.projects.locations.replays.results.html b/docs/dyn/policysimulator_v1beta1.projects.locations.replays.results.html
new file mode 100644
index 0000000..3f712ca
--- /dev/null
+++ b/docs/dyn/policysimulator_v1beta1.projects.locations.replays.results.html
@@ -0,0 +1,303 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="policysimulator_v1beta1.html">Policy Simulator API</a> . <a href="policysimulator_v1beta1.projects.html">projects</a> . <a href="policysimulator_v1beta1.projects.locations.html">locations</a> . <a href="policysimulator_v1beta1.projects.locations.replays.html">replays</a> . <a href="policysimulator_v1beta1.projects.locations.replays.results.html">results</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists the results of running a Replay.</p>
+<p class="toc_element">
+  <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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists the results of running a Replay.
+
+Args:
+  parent: string, Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36` (required)
+  pageSize: integer, The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.
+  pageToken: string, A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for Simulator.ListReplayResults.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.
+  &quot;replayResults&quot;: [ # The results of running a Replay.
+    { # The result of replaying a single access tuple against a simulated state.
+      &quot;accessTuple&quot;: { # Information about the member, resource, and permission to check. # The access tuple that was replayed. This field includes information about the member, resource, and permission that were involved in the access attempt.
+        &quot;fullResourceName&quot;: &quot;A String&quot;, # Required. The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+        &quot;permission&quot;: &quot;A String&quot;, # Required. The IAM permission to check for the specified member and resource. For a complete list of IAM permissions, see https://cloud.google.com/iam/help/permissions/reference. For a complete list of predefined IAM roles and the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+        &quot;principal&quot;: &quot;A String&quot;, # Required. The member, or principal, whose access you want to check, in the form of the email address that represents that member. For example, `alice@example.com` or `my-service-account@my-project.iam.gserviceaccount.com`. The member must be a Google Account or a service account. Other types of members are not supported.
+      },
+      &quot;diff&quot;: { # The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a member&#x27;s access could change if the proposed policies were applied. # The difference between the member&#x27;s access under the current (baseline) policies and the member&#x27;s access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies.
+        &quot;accessDiff&quot;: { # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. # A summary and comparison of the member&#x27;s access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the member&#x27;s access is reported in the AccessState field.
+          &quot;accessChange&quot;: &quot;A String&quot;, # How the member&#x27;s access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.
+          &quot;baseline&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+          &quot;simulated&quot;: { # Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple. # The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn&#x27;t be fully evaluated, this field explains why.
+            &quot;accessState&quot;: &quot;A String&quot;, # Whether the member in the access tuple has permission to access the resource in the access tuple under the given policies.
+            &quot;errors&quot;: [ # If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
+                &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+                &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+                  {
+                    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+                  },
+                ],
+                &quot;message&quot;: &quot;A String&quot;, # 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.
+              },
+            ],
+            &quot;policies&quot;: [ # If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.
+              { # Details about how a specific IAM Policy contributed to the access check.
+                &quot;access&quot;: &quot;A String&quot;, # Indicates whether _this policy_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another policy that overrides this policy. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                &quot;bindingExplanations&quot;: [ # Details about how each binding in the policy affects the member&#x27;s ability, or inability, to use the permission for the resource. If the user who created the Replay does not have access to the policy, this field is omitted.
+                  { # Details about how a binding in a policy affects a member&#x27;s ability to use a permission.
+                    &quot;access&quot;: &quot;A String&quot;, # Required. Indicates whether _this binding_ provides the specified permission to the specified member for the specified resource. This field does _not_ indicate whether the member actually has the permission for the resource. There might be another binding that overrides this binding. To determine whether the member actually has the permission, use the `access` field in the TroubleshootIamPolicyResponse.
+                    &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # A condition expression that prevents this binding from granting access unless the expression evaluates to `true`. To learn about IAM Conditions, see https://cloud.google.com/iam/docs/conditions-overview.
+                      &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                      &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                      &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                      &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                    },
+                    &quot;memberships&quot;: { # Indicates whether each member in the binding includes the member specified in the request, either directly or indirectly. Each key identifies a member in the binding, and each value indicates whether the member in the binding includes the member in the request. For example, suppose that a binding includes the following members: * `user:alice@example.com` * `group:product-eng@example.com` The member in the replayed access tuple is `user:bob@example.com`. This user is a member of the group `group:product-eng@example.com`. For the first member in the binding, the key is `user:alice@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_NOT_INCLUDED`. For the second member in the binding, the key is `group:product-eng@example.com`, and the `membership` field in the value is set to `MEMBERSHIP_INCLUDED`.
+                      &quot;a_key&quot;: { # Details about whether the binding includes the member.
+                        &quot;membership&quot;: &quot;A String&quot;, # Indicates whether the binding includes the member.
+                        &quot;relevance&quot;: &quot;A String&quot;, # The relevance of the member&#x27;s status to the overall determination for the binding.
+                      },
+                    },
+                    &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this binding to the overall determination for the entire policy.
+                    &quot;role&quot;: &quot;A String&quot;, # The role that this binding grants. For example, `roles/compute.serviceAgent`. For a complete list of predefined IAM roles, as well as the permissions in each role, see https://cloud.google.com/iam/help/roles/reference.
+                    &quot;rolePermission&quot;: &quot;A String&quot;, # Indicates whether the role granted by this binding contains the specified permission.
+                    &quot;rolePermissionRelevance&quot;: &quot;A String&quot;, # The relevance of the permission&#x27;s existence, or nonexistence, in the role to the overall determination for the entire policy.
+                  },
+                ],
+                &quot;fullResourceName&quot;: &quot;A String&quot;, # The full resource name that identifies the resource. For example, `//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance`. If the user who created the Replay does not have access to the policy, this field is omitted. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.
+                &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # The IAM policy attached to the resource. If the user who created the Replay does not have access to the policy, this field is empty.
+                  &quot;auditConfigs&quot;: [ # Specifies cloud audit logging configuration for this policy.
+                    { # Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.
+                      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+                        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+                          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+                            &quot;A String&quot;,
+                          ],
+                          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+                        },
+                      ],
+                      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+                    },
+                  ],
+                  &quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.
+                    { # Associates `members` with a `role`.
+                      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+                        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+                        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+                        &quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
+                      },
+                      &quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`.
+                        &quot;A String&quot;,
+                      ],
+                      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+                    },
+                  ],
+                  &quot;etag&quot;: &quot;A String&quot;, # `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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.
+                  &quot;version&quot;: 42, # Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+                },
+                &quot;relevance&quot;: &quot;A String&quot;, # The relevance of this policy to the overall determination in the TroubleshootIamPolicyResponse. If the user who created the Replay does not have access to the policy, this field is omitted.
+              },
+            ],
+          },
+        },
+      },
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;lastSeenDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The latest date this access tuple was seen in the logs.
+        &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
+        &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
+        &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`
+      &quot;parent&quot;: &quot;A String&quot;, # The Replay that the access tuple was included in.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/pubsub_v1.projects.subscriptions.html b/docs/dyn/pubsub_v1.projects.subscriptions.html
index 64d9c6a..70ddb01 100644
--- a/docs/dyn/pubsub_v1.projects.subscriptions.html
+++ b/docs/dyn/pubsub_v1.projects.subscriptions.html
@@ -191,7 +191,7 @@
     },
     &quot;pushEndpoint&quot;: &quot;A String&quot;, # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.
   },
-  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [Seek to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time).
+  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.
   &quot;retryPolicy&quot;: { # A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. # A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
     &quot;maximumBackoff&quot;: &quot;A String&quot;, # The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
     &quot;minimumBackoff&quot;: &quot;A String&quot;, # The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
@@ -234,7 +234,7 @@
     },
     &quot;pushEndpoint&quot;: &quot;A String&quot;, # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.
   },
-  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [Seek to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time).
+  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.
   &quot;retryPolicy&quot;: { # A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. # A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
     &quot;maximumBackoff&quot;: &quot;A String&quot;, # The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
     &quot;minimumBackoff&quot;: &quot;A String&quot;, # The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
@@ -320,7 +320,7 @@
     },
     &quot;pushEndpoint&quot;: &quot;A String&quot;, # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.
   },
-  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [Seek to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time).
+  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.
   &quot;retryPolicy&quot;: { # A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. # A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
     &quot;maximumBackoff&quot;: &quot;A String&quot;, # The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
     &quot;minimumBackoff&quot;: &quot;A String&quot;, # The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
@@ -410,7 +410,7 @@
         },
         &quot;pushEndpoint&quot;: &quot;A String&quot;, # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.
       },
-      &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [Seek to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time).
+      &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.
       &quot;retryPolicy&quot;: { # A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. # A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
         &quot;maximumBackoff&quot;: &quot;A String&quot;, # The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
         &quot;minimumBackoff&quot;: &quot;A String&quot;, # The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
@@ -534,7 +534,7 @@
       },
       &quot;pushEndpoint&quot;: &quot;A String&quot;, # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.
     },
-    &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [Seek to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time).
+    &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.
     &quot;retryPolicy&quot;: { # A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. # A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
       &quot;maximumBackoff&quot;: &quot;A String&quot;, # The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
       &quot;minimumBackoff&quot;: &quot;A String&quot;, # The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
@@ -579,7 +579,7 @@
     },
     &quot;pushEndpoint&quot;: &quot;A String&quot;, # A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use `https://example.com/push`.
   },
-  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [Seek to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time).
+  &quot;retainAckedMessages&quot;: True or False, # Indicates whether to retain acknowledged messages. If true, then messages are not expunged from the subscription&#x27;s backlog, even if they are acknowledged, until they fall out of the `message_retention_duration` window. This must be true if you would like to [`Seek` to a timestamp] (https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time) in the past to replay previously-acknowledged messages.
   &quot;retryPolicy&quot;: { # A policy that specifies how Cloud Pub/Sub retries message delivery. Retry delay will be exponential based on provided minimum and maximum backoffs. https://en.wikipedia.org/wiki/Exponential_backoff. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message. Retry Policy is implemented on a best effort basis. At times, the delay between consecutive deliveries may not match the configuration. That is, delay can be more or less than configured backoff. # A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
     &quot;maximumBackoff&quot;: &quot;A String&quot;, # The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
     &quot;minimumBackoff&quot;: &quot;A String&quot;, # The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
diff --git a/docs/dyn/realtimebidding_v1alpha.bidders.biddingFunctions.html b/docs/dyn/realtimebidding_v1alpha.bidders.biddingFunctions.html
index efd7d44..b2639eb 100644
--- a/docs/dyn/realtimebidding_v1alpha.bidders.biddingFunctions.html
+++ b/docs/dyn/realtimebidding_v1alpha.bidders.biddingFunctions.html
@@ -102,7 +102,7 @@
     The object takes the form of:
 
 { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
-  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function. The function takes in a Javascript object, `inputs`, that contains the following named fields: `openrtbContextualBidRequest` OR `googleContextualBidRequest`, `customContextualSignal`, `interestBasedBidData`, `interestGroupData`, `recentImpressionAges`, and returns the bid price CPM (double). Example: ``` /* Returns a bid price CPM (double). * * @param {Object} inputs an object with the * following named fields: * - openrtbContextualBidRequest * OR googleContextualBidRequest * - customContextualSignal * - interestBasedBidData * - interestGroupData * - recentImpressionAges */ function biddingFunction(inputs) { ... return inputs.interestBasedBidData.cpm * inputs.customContextualSignals.placementMultiplier; } ```
+  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
   &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
 }
 
@@ -115,7 +115,7 @@
   An object of the form:
 
     { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
-  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function. The function takes in a Javascript object, `inputs`, that contains the following named fields: `openrtbContextualBidRequest` OR `googleContextualBidRequest`, `customContextualSignal`, `interestBasedBidData`, `interestGroupData`, `recentImpressionAges`, and returns the bid price CPM (double). Example: ``` /* Returns a bid price CPM (double). * * @param {Object} inputs an object with the * following named fields: * - openrtbContextualBidRequest * OR googleContextualBidRequest * - customContextualSignal * - interestBasedBidData * - interestGroupData * - recentImpressionAges */ function biddingFunction(inputs) { ... return inputs.interestBasedBidData.cpm * inputs.customContextualSignals.placementMultiplier; } ```
+  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
   &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
 }</pre>
 </div>
@@ -139,7 +139,7 @@
     { # A response containing a list of a bidder&#x27;s bidding functions.
   &quot;biddingFunctions&quot;: [ # A list of a bidder&#x27;s bidding functions.
     { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
-      &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function. The function takes in a Javascript object, `inputs`, that contains the following named fields: `openrtbContextualBidRequest` OR `googleContextualBidRequest`, `customContextualSignal`, `interestBasedBidData`, `interestGroupData`, `recentImpressionAges`, and returns the bid price CPM (double). Example: ``` /* Returns a bid price CPM (double). * * @param {Object} inputs an object with the * following named fields: * - openrtbContextualBidRequest * OR googleContextualBidRequest * - customContextualSignal * - interestBasedBidData * - interestGroupData * - recentImpressionAges */ function biddingFunction(inputs) { ... return inputs.interestBasedBidData.cpm * inputs.customContextualSignals.placementMultiplier; } ```
+      &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
       &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
     },
   ],
diff --git a/docs/dyn/retail_v2.html b/docs/dyn/retail_v2.html
new file mode 100644
index 0000000..b7ba656
--- /dev/null
+++ b/docs/dyn/retail_v2.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.html b/docs/dyn/retail_v2.projects.html
new file mode 100644
index 0000000..0d4f0f8
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.branches.html b/docs/dyn/retail_v2.projects.locations.catalogs.branches.html
new file mode 100644
index 0000000..753b64d
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.branches.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.branches.html">branches</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.branches.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.branches.products.html">products()</a></code>
+</p>
+<p class="firstline">Returns the products Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.branches.operations.html b/docs/dyn/retail_v2.projects.locations.catalogs.branches.operations.html
new file mode 100644
index 0000000..9fe5b91
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.branches.operations.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.branches.html">branches</a> . <a href="retail_v2.projects.locations.catalogs.branches.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html
new file mode 100644
index 0000000..5783c01
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html
@@ -0,0 +1,488 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.branches.html">branches</a> . <a href="retail_v2.projects.locations.catalogs.branches.products.html">products</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, productId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Product.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a Product.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a Product.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a Product.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, productId=None, x__xgafv=None)</code>
+  <pre>Creates a Product.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}
+
+  productId: string, Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a Product.
+
+Args:
+  name: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to delete does not exist, a NOT_FOUND error is returned. The Product to delete can neither be a Product.Type.COLLECTION Product member nor a Product.Type.PRIMARY Product with more than one variants. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named Product will be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a Product.
+
+Args:
+  name: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the requested Product does not exist, a NOT_FOUND error is returned. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
+  <pre>Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.
+
+Args:
+  parent: string, Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires products.create permission. If updateMask is specified, requires products.update permission. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for Import methods.
+  &quot;errorsConfig&quot;: { # Configuration of destination for Import related errors. # The desired location of errors incurred during the Import.
+    &quot;gcsPrefix&quot;: &quot;A String&quot;, # Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.
+  },
+  &quot;inputConfig&quot;: { # The input config source for products. # Required. The desired input location of the data.
+    &quot;bigQuerySource&quot;: { # BigQuery source import data from. # BigQuery input source.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;datasetId&quot;: &quot;A String&quot;, # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      &quot;gcsStagingDir&quot;: &quot;A String&quot;, # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      &quot;projectId&quot;: &quot;A String&quot;, # The project id (can be project # or id) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project id from the parent request.
+      &quot;tableId&quot;: &quot;A String&quot;, # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+    &quot;gcsSource&quot;: { # Google Cloud Storage location for input content. format. # Google Cloud Storage location for the input content.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mcc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;inputUris&quot;: [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;productInlineSource&quot;: { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products.
+      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 10k items.
+        { # Product captures all metadata information of items to be recommended or searched.
+          &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+          &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+          &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+          &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+            &quot;A String&quot;,
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+          &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+          &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            { # Product thumbnail/detail image.
+              &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+              &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            },
+          ],
+          &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+          &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+            &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+            &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+            &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          },
+          &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+          &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+            &quot;A String&quot;,
+          ],
+          &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+          &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+          &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        },
+      ],
+    },
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # Indicates which fields in the provided imported &#x27;products&#x27; to update. If not set, will by default update all fields.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a Product.
+
+Args:
+  name: string, Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}
+
+  allowMissing: boolean, If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored.
+  updateMask: string, Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.html b/docs/dyn/retail_v2.projects.locations.catalogs.html
new file mode 100644
index 0000000..a917257
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.html
@@ -0,0 +1,197 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.branches.html">branches()</a></code>
+</p>
+<p class="firstline">Returns the branches Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.placements.html">placements()</a></code>
+</p>
+<p class="firstline">Returns the placements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.userEvents.html">userEvents()</a></code>
+</p>
+<p class="firstline">Returns the userEvents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all the Catalogs associated with 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>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Catalogs.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists all the Catalogs associated with the project.
+
+Args:
+  parent: string, Required. The account resource name with an associated location. If the caller does not have permission to list Catalogs under this location, regardless of whether or not this location exists, a PERMISSION_DENIED error is returned. (required)
+  pageSize: integer, Maximum number of Catalogs to return. If unspecified, defaults to 50. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT is returned.
+  pageToken: string, A page token ListCatalogsResponse.next_page_token, received from a previous CatalogService.ListCatalogs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to CatalogService.ListCatalogs must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for CatalogService.ListCatalogs method.
+  &quot;catalogs&quot;: [ # All the customer&#x27;s Catalogs.
+    { # The catalog configuration.
+      &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+      &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+        &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+        &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+      },
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as ListCatalogsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the Catalogs.
+
+Args:
+  name: string, Required. Immutable. The fully qualified resource name of the catalog. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The catalog configuration.
+  &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+  &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+    &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+    &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+  },
+}
+
+  updateMask: string, Indicates which fields in the provided Catalog to update. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The catalog configuration.
+  &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+  &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+    &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+    &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.operations.html b/docs/dyn/retail_v2.projects.locations.catalogs.operations.html
new file mode 100644
index 0000000..2e5e443
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.placements.html b/docs/dyn/retail_v2.projects.locations.catalogs.placements.html
new file mode 100644
index 0000000..c8946af
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.placements.html
@@ -0,0 +1,222 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.placements.html">placements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#predict">predict(placement, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Makes a recommendation prediction.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="predict">predict(placement, body=None, x__xgafv=None)</code>
+  <pre>Makes a recommendation prediction.
+
+Args:
+  placement: string, Required. Full resource name of the format: {name=projects/*/locations/global/catalogs/default_catalog/placements/*} The ID of the Recommendations AI placement. Before you can request predictions from your model, you must create at least one placement for it. For more information, see [Managing placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for Predict method.
+  &quot;filter&quot;: &quot;A String&quot;, # Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-&quot;tagA&quot;` is also supported and is equivalent to `NOT &quot;tagA&quot;`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: &quot;Recently viewed&quot; models don&#x27;t support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(&quot;Red&quot; OR &quot;Blue&quot;) tag=&quot;New-Arrival&quot; tag=(NOT &quot;promotional&quot;) * filterOutOfStockItems tag=(-&quot;promotional&quot;) * filterOutOfStockItems If your filter blocks all prediction results, nothing will be returned. If you want generic (unfiltered) popular products to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.
+  &quot;labels&quot;: { # The labels for the predict request. * Label keys can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * Non-zero label values can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * No more than 64 labels can be associated with a given request. See https://goo.gl/xmQnxf for more information on and examples of labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;pageSize&quot;: 42, # Maximum number of results to return per page. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.
+  &quot;pageToken&quot;: &quot;A String&quot;, # The previous PredictResponse.next_page_token.
+  &quot;params&quot;: { # Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction &#x27;score&#x27; corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given &#x27;score&#x27; indicates the probability of an product being clicked/purchased given the user&#x27;s context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results.
+    &quot;a_key&quot;: &quot;&quot;,
+  },
+  &quot;userEvent&quot;: { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website. # Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won&#x27;t be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging.
+    &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+      &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+        &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          3.14,
+        ],
+        &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          &quot;A String&quot;,
+        ],
+      },
+    },
+    &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+    &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+    &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+    &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+    &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+      &quot;A String&quot;,
+    ],
+    &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;A String&quot;,
+    ],
+    &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+    &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+      { # Detailed product information associated with a user event.
+        &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+          &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+          &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+          &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+          &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+            &quot;A String&quot;,
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+          &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+          &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            { # Product thumbnail/detail image.
+              &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+              &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            },
+          ],
+          &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+          &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+            &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+            &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+            &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          },
+          &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+          &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+            &quot;A String&quot;,
+          ],
+          &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+          &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+          &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        },
+        &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+      },
+    ],
+    &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+      &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+      &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+      &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+      &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+    },
+    &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+    &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+    &quot;userInfo&quot;: { # Information of an end user. # User information.
+      &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+      &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+      &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;validateOnly&quot;: True or False, # Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for predict method.
+  &quot;attributionToken&quot;: &quot;A String&quot;, # A unique attribution token. This should be included in the UserEvent logs resulting from this recommendation, which enables accurate attribution of recommendation model performance.
+  &quot;missingIds&quot;: [ # IDs of products in the request that were missing from the inventory.
+    &quot;A String&quot;,
+  ],
+  &quot;results&quot;: [ # A list of recommended products. The order represents the ranking (from the most relevant product to the least).
+    { # PredictionResult represents the recommendation prediction results.
+      &quot;id&quot;: &quot;A String&quot;, # ID of the recommended product
+      &quot;metadata&quot;: { # Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Will be set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnScore` is set to true in `PredictRequest.params`.
+        &quot;a_key&quot;: &quot;&quot;,
+      },
+    },
+  ],
+  &quot;validateOnly&quot;: True or False, # True if the validateOnly property was set in the request.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html b/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html
new file mode 100644
index 0000000..75feff0
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.userEvents.html
@@ -0,0 +1,555 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.userEvents.html">userEvents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#collect">collect(parent, ets=None, uri=None, userEvent=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.</p>
+<p class="toc_element">
+  <code><a href="#purge">purge(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.</p>
+<p class="toc_element">
+  <code><a href="#rejoin">rejoin(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.</p>
+<p class="toc_element">
+  <code><a href="#write">write(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Writes a single user event.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="collect">collect(parent, ets=None, uri=None, userEvent=None, x__xgafv=None)</code>
+  <pre>Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.
+
+Args:
+  parent: string, Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  ets: string, The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.
+  uri: string, The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.
+  userEvent: string, Required. URL encoded UserEvent proto with a length limit of 2,000,000 characters.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Message that represents an arbitrary HTTP body. It should only be used for payload formats that can&#x27;t be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.
+  &quot;contentType&quot;: &quot;A String&quot;, # The HTTP Content-Type header value specifying the content type of the body.
+  &quot;data&quot;: &quot;A String&quot;, # The HTTP request/response body as raw binary.
+  &quot;extensions&quot;: [ # Application specific response metadata. Must be set in the first response for streaming APIs.
+    {
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
+  <pre>Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.
+
+Args:
+  parent: string, Required. `projects/1234/locations/global/catalogs/default_catalog` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the ImportUserEvents request.
+  &quot;errorsConfig&quot;: { # Configuration of destination for Import related errors. # The desired location of errors incurred during the Import. Cannot be set for inline user event imports.
+    &quot;gcsPrefix&quot;: &quot;A String&quot;, # Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.
+  },
+  &quot;inputConfig&quot;: { # The input config source for user events. # Required. The desired input location of the data.
+    &quot;bigQuerySource&quot;: { # BigQuery source import data from. # Required. BigQuery input source.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;datasetId&quot;: &quot;A String&quot;, # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      &quot;gcsStagingDir&quot;: &quot;A String&quot;, # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      &quot;projectId&quot;: &quot;A String&quot;, # The project id (can be project # or id) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project id from the parent request.
+      &quot;tableId&quot;: &quot;A String&quot;, # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+    &quot;gcsSource&quot;: { # Google Cloud Storage location for input content. format. # Required. Google Cloud Storage location for the input content.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mcc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;inputUris&quot;: [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;userEventInlineSource&quot;: { # The inline source for the input config for ImportUserEvents method. # Required. The Inline source for the input content for UserEvents.
+      &quot;userEvents&quot;: [ # Required. A list of user events to import. Recommended max of 10k items.
+        { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+          &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+          &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+          &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+          &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+          &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+            &quot;A String&quot;,
+          ],
+          &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;A String&quot;,
+          ],
+          &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+          &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+            { # Detailed product information associated with a user event.
+              &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+                &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+                  &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+                    &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                      3.14,
+                    ],
+                    &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                },
+                &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+                &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+                &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+                &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+                  &quot;A String&quot;,
+                ],
+                &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+                &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+                &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+                  { # Product thumbnail/detail image.
+                    &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+                    &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+                    &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+                  },
+                ],
+                &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+                &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+                  &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+                  &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+                  &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+                  &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+                },
+                &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+                &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+                  &quot;A String&quot;,
+                ],
+                &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+                &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+                &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+              },
+              &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+            },
+          ],
+          &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+            &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+            &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+            &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+            &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+          },
+          &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+          &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+          &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+          &quot;userInfo&quot;: { # Information of an end user. # User information.
+            &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+            &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+            &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+            &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+          &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+    },
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="purge">purge(parent, body=None, x__xgafv=None)</code>
+  <pre>Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.
+
+Args:
+  parent: string, Required. The resource name of the catalog under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for PurgeUserEvents method.
+  &quot;filter&quot;: &quot;A String&quot;, # Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 &quot;zulu&quot; format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime &gt; &quot;2012-04-23T18:25:43.511Z&quot; eventTime &lt; &quot;2012-04-23T18:30:43.511Z&quot;` * Deleting specific eventType in time range: `eventTime &gt; &quot;2012-04-23T18:25:43.511Z&quot; eventType = &quot;detail-page-view&quot;` * Deleting all events for a specific visitor: `visitorId = &quot;visitor1024&quot;` The filtering fields are assumed to have an implicit AND.
+  &quot;force&quot;: True or False, # Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rejoin">rejoin(parent, body=None, x__xgafv=None)</code>
+  <pre>Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a &#x27;join&#x27; operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for RejoinUserEvents method.
+  &quot;userEventRejoinScope&quot;: &quot;A String&quot;, # The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="write">write(parent, body=None, x__xgafv=None)</code>
+  <pre>Writes a single user event.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+  &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+  &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+  &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+  &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+  &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+    &quot;A String&quot;,
+  ],
+  &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;A String&quot;,
+  ],
+  &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+    { # Detailed product information associated with a user event.
+      &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+        &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+          &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+            &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+        &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+        &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          &quot;A String&quot;,
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+        &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+          &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        },
+        &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          &quot;A String&quot;,
+        ],
+        &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      },
+      &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+    },
+  ],
+  &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+    &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+    &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+    &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+    &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+  },
+  &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+  &quot;userInfo&quot;: { # Information of an end user. # User information.
+    &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+  &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+  &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+  &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+  &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+  &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+    &quot;A String&quot;,
+  ],
+  &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;A String&quot;,
+  ],
+  &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+    { # Detailed product information associated with a user event.
+      &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+        &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+          &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+            &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+        &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+        &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          &quot;A String&quot;,
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+        &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+          &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        },
+        &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          &quot;A String&quot;,
+        ],
+        &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      },
+      &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+    },
+  ],
+  &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+    &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+    &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+    &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+    &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+  },
+  &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+  &quot;userInfo&quot;: { # Information of an end user. # User information.
+    &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.html b/docs/dyn/retail_v2.projects.locations.html
new file mode 100644
index 0000000..2f7c748
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.catalogs.html">catalogs()</a></code>
+</p>
+<p class="firstline">Returns the catalogs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2.projects.locations.operations.html b/docs/dyn/retail_v2.projects.locations.operations.html
new file mode 100644
index 0000000..2e5d461
--- /dev/null
+++ b/docs/dyn/retail_v2.projects.locations.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2.html">Retail API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.html b/docs/dyn/retail_v2alpha.html
new file mode 100644
index 0000000..b38a402
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.html b/docs/dyn/retail_v2alpha.projects.html
new file mode 100644
index 0000000..61ede08
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.html
new file mode 100644
index 0000000..87d6642
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.branches.html">branches</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.branches.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.branches.products.html">products()</a></code>
+</p>
+<p class="firstline">Returns the products Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.operations.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.operations.html
new file mode 100644
index 0000000..6a80080
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.operations.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.branches.html">branches</a> . <a href="retail_v2alpha.projects.locations.catalogs.branches.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html
new file mode 100644
index 0000000..9d78cac
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html
@@ -0,0 +1,488 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.branches.html">branches</a> . <a href="retail_v2alpha.projects.locations.catalogs.branches.products.html">products</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, productId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Product.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a Product.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a Product.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a Product.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, productId=None, x__xgafv=None)</code>
+  <pre>Creates a Product.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}
+
+  productId: string, Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a Product.
+
+Args:
+  name: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to delete does not exist, a NOT_FOUND error is returned. The Product to delete can neither be a Product.Type.COLLECTION Product member nor a Product.Type.PRIMARY Product with more than one variants. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named Product will be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a Product.
+
+Args:
+  name: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the requested Product does not exist, a NOT_FOUND error is returned. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
+  <pre>Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.
+
+Args:
+  parent: string, Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires products.create permission. If updateMask is specified, requires products.update permission. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for Import methods.
+  &quot;errorsConfig&quot;: { # Configuration of destination for Import related errors. # The desired location of errors incurred during the Import.
+    &quot;gcsPrefix&quot;: &quot;A String&quot;, # Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.
+  },
+  &quot;inputConfig&quot;: { # The input config source for products. # Required. The desired input location of the data.
+    &quot;bigQuerySource&quot;: { # BigQuery source import data from. # BigQuery input source.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;datasetId&quot;: &quot;A String&quot;, # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      &quot;gcsStagingDir&quot;: &quot;A String&quot;, # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      &quot;projectId&quot;: &quot;A String&quot;, # The project id (can be project # or id) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project id from the parent request.
+      &quot;tableId&quot;: &quot;A String&quot;, # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+    &quot;gcsSource&quot;: { # Google Cloud Storage location for input content. format. # Google Cloud Storage location for the input content.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mcc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;inputUris&quot;: [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;productInlineSource&quot;: { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products.
+      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 10k items.
+        { # Product captures all metadata information of items to be recommended or searched.
+          &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+          &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+          &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+          &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+            &quot;A String&quot;,
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+          &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+          &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            { # Product thumbnail/detail image.
+              &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+              &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            },
+          ],
+          &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+          &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+            &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+            &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+            &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          },
+          &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+          &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+            &quot;A String&quot;,
+          ],
+          &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+          &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+          &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        },
+      ],
+    },
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # Indicates which fields in the provided imported &#x27;products&#x27; to update. If not set, will by default update all fields.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a Product.
+
+Args:
+  name: string, Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}
+
+  allowMissing: boolean, If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored.
+  updateMask: string, Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.html
new file mode 100644
index 0000000..c16bf40
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.html
@@ -0,0 +1,197 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.branches.html">branches()</a></code>
+</p>
+<p class="firstline">Returns the branches Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.placements.html">placements()</a></code>
+</p>
+<p class="firstline">Returns the placements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.userEvents.html">userEvents()</a></code>
+</p>
+<p class="firstline">Returns the userEvents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all the Catalogs associated with 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>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Catalogs.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists all the Catalogs associated with the project.
+
+Args:
+  parent: string, Required. The account resource name with an associated location. If the caller does not have permission to list Catalogs under this location, regardless of whether or not this location exists, a PERMISSION_DENIED error is returned. (required)
+  pageSize: integer, Maximum number of Catalogs to return. If unspecified, defaults to 50. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT is returned.
+  pageToken: string, A page token ListCatalogsResponse.next_page_token, received from a previous CatalogService.ListCatalogs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to CatalogService.ListCatalogs must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for CatalogService.ListCatalogs method.
+  &quot;catalogs&quot;: [ # All the customer&#x27;s Catalogs.
+    { # The catalog configuration.
+      &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+      &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+        &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+        &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+      },
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as ListCatalogsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the Catalogs.
+
+Args:
+  name: string, Required. Immutable. The fully qualified resource name of the catalog. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The catalog configuration.
+  &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+  &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+    &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+    &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+  },
+}
+
+  updateMask: string, Indicates which fields in the provided Catalog to update. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The catalog configuration.
+  &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+  &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+    &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+    &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.operations.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.operations.html
new file mode 100644
index 0000000..e9f36ac
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html
new file mode 100644
index 0000000..e3872fc
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.placements.html
@@ -0,0 +1,222 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.placements.html">placements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#predict">predict(placement, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Makes a recommendation prediction.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="predict">predict(placement, body=None, x__xgafv=None)</code>
+  <pre>Makes a recommendation prediction.
+
+Args:
+  placement: string, Required. Full resource name of the format: {name=projects/*/locations/global/catalogs/default_catalog/placements/*} The ID of the Recommendations AI placement. Before you can request predictions from your model, you must create at least one placement for it. For more information, see [Managing placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for Predict method.
+  &quot;filter&quot;: &quot;A String&quot;, # Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-&quot;tagA&quot;` is also supported and is equivalent to `NOT &quot;tagA&quot;`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: &quot;Recently viewed&quot; models don&#x27;t support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(&quot;Red&quot; OR &quot;Blue&quot;) tag=&quot;New-Arrival&quot; tag=(NOT &quot;promotional&quot;) * filterOutOfStockItems tag=(-&quot;promotional&quot;) * filterOutOfStockItems If your filter blocks all prediction results, nothing will be returned. If you want generic (unfiltered) popular products to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.
+  &quot;labels&quot;: { # The labels for the predict request. * Label keys can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * Non-zero label values can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * No more than 64 labels can be associated with a given request. See https://goo.gl/xmQnxf for more information on and examples of labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;pageSize&quot;: 42, # Maximum number of results to return per page. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.
+  &quot;pageToken&quot;: &quot;A String&quot;, # The previous PredictResponse.next_page_token.
+  &quot;params&quot;: { # Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction &#x27;score&#x27; corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given &#x27;score&#x27; indicates the probability of an product being clicked/purchased given the user&#x27;s context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results.
+    &quot;a_key&quot;: &quot;&quot;,
+  },
+  &quot;userEvent&quot;: { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website. # Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won&#x27;t be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging.
+    &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+      &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+        &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          3.14,
+        ],
+        &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          &quot;A String&quot;,
+        ],
+      },
+    },
+    &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+    &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+    &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+    &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+    &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+      &quot;A String&quot;,
+    ],
+    &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;A String&quot;,
+    ],
+    &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+    &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+      { # Detailed product information associated with a user event.
+        &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+          &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+          &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+          &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+          &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+            &quot;A String&quot;,
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+          &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+          &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            { # Product thumbnail/detail image.
+              &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+              &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            },
+          ],
+          &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+          &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+            &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+            &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+            &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          },
+          &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+          &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+            &quot;A String&quot;,
+          ],
+          &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+          &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+          &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        },
+        &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+      },
+    ],
+    &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+      &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+      &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+      &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+      &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+    },
+    &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+    &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+    &quot;userInfo&quot;: { # Information of an end user. # User information.
+      &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+      &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+      &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;validateOnly&quot;: True or False, # Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for predict method.
+  &quot;attributionToken&quot;: &quot;A String&quot;, # A unique attribution token. This should be included in the UserEvent logs resulting from this recommendation, which enables accurate attribution of recommendation model performance.
+  &quot;missingIds&quot;: [ # IDs of products in the request that were missing from the inventory.
+    &quot;A String&quot;,
+  ],
+  &quot;results&quot;: [ # A list of recommended products. The order represents the ranking (from the most relevant product to the least).
+    { # PredictionResult represents the recommendation prediction results.
+      &quot;id&quot;: &quot;A String&quot;, # ID of the recommended product
+      &quot;metadata&quot;: { # Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Will be set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnScore` is set to true in `PredictRequest.params`.
+        &quot;a_key&quot;: &quot;&quot;,
+      },
+    },
+  ],
+  &quot;validateOnly&quot;: True or False, # True if the validateOnly property was set in the request.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html
new file mode 100644
index 0000000..3c6601b
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.userEvents.html
@@ -0,0 +1,555 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2alpha.projects.locations.catalogs.userEvents.html">userEvents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#collect">collect(parent, ets=None, uri=None, userEvent=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.</p>
+<p class="toc_element">
+  <code><a href="#purge">purge(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.</p>
+<p class="toc_element">
+  <code><a href="#rejoin">rejoin(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.</p>
+<p class="toc_element">
+  <code><a href="#write">write(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Writes a single user event.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="collect">collect(parent, ets=None, uri=None, userEvent=None, x__xgafv=None)</code>
+  <pre>Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.
+
+Args:
+  parent: string, Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  ets: string, The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.
+  uri: string, The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.
+  userEvent: string, Required. URL encoded UserEvent proto with a length limit of 2,000,000 characters.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Message that represents an arbitrary HTTP body. It should only be used for payload formats that can&#x27;t be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.
+  &quot;contentType&quot;: &quot;A String&quot;, # The HTTP Content-Type header value specifying the content type of the body.
+  &quot;data&quot;: &quot;A String&quot;, # The HTTP request/response body as raw binary.
+  &quot;extensions&quot;: [ # Application specific response metadata. Must be set in the first response for streaming APIs.
+    {
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
+  <pre>Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.
+
+Args:
+  parent: string, Required. `projects/1234/locations/global/catalogs/default_catalog` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the ImportUserEvents request.
+  &quot;errorsConfig&quot;: { # Configuration of destination for Import related errors. # The desired location of errors incurred during the Import. Cannot be set for inline user event imports.
+    &quot;gcsPrefix&quot;: &quot;A String&quot;, # Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.
+  },
+  &quot;inputConfig&quot;: { # The input config source for user events. # Required. The desired input location of the data.
+    &quot;bigQuerySource&quot;: { # BigQuery source import data from. # Required. BigQuery input source.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;datasetId&quot;: &quot;A String&quot;, # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      &quot;gcsStagingDir&quot;: &quot;A String&quot;, # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      &quot;projectId&quot;: &quot;A String&quot;, # The project id (can be project # or id) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project id from the parent request.
+      &quot;tableId&quot;: &quot;A String&quot;, # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+    &quot;gcsSource&quot;: { # Google Cloud Storage location for input content. format. # Required. Google Cloud Storage location for the input content.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mcc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;inputUris&quot;: [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;userEventInlineSource&quot;: { # The inline source for the input config for ImportUserEvents method. # Required. The Inline source for the input content for UserEvents.
+      &quot;userEvents&quot;: [ # Required. A list of user events to import. Recommended max of 10k items.
+        { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+          &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+          &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+          &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+          &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+          &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+            &quot;A String&quot;,
+          ],
+          &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;A String&quot;,
+          ],
+          &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+          &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+            { # Detailed product information associated with a user event.
+              &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+                &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+                  &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+                    &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                      3.14,
+                    ],
+                    &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                },
+                &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+                &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+                &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+                &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+                  &quot;A String&quot;,
+                ],
+                &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+                &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+                &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+                  { # Product thumbnail/detail image.
+                    &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+                    &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+                    &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+                  },
+                ],
+                &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+                &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+                  &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+                  &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+                  &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+                  &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+                },
+                &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+                &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+                  &quot;A String&quot;,
+                ],
+                &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+                &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+                &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+              },
+              &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+            },
+          ],
+          &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+            &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+            &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+            &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+            &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+          },
+          &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+          &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+          &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+          &quot;userInfo&quot;: { # Information of an end user. # User information.
+            &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+            &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+            &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+            &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+          &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+    },
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="purge">purge(parent, body=None, x__xgafv=None)</code>
+  <pre>Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.
+
+Args:
+  parent: string, Required. The resource name of the catalog under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for PurgeUserEvents method.
+  &quot;filter&quot;: &quot;A String&quot;, # Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 &quot;zulu&quot; format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime &gt; &quot;2012-04-23T18:25:43.511Z&quot; eventTime &lt; &quot;2012-04-23T18:30:43.511Z&quot;` * Deleting specific eventType in time range: `eventTime &gt; &quot;2012-04-23T18:25:43.511Z&quot; eventType = &quot;detail-page-view&quot;` * Deleting all events for a specific visitor: `visitorId = &quot;visitor1024&quot;` The filtering fields are assumed to have an implicit AND.
+  &quot;force&quot;: True or False, # Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rejoin">rejoin(parent, body=None, x__xgafv=None)</code>
+  <pre>Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a &#x27;join&#x27; operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for RejoinUserEvents method.
+  &quot;userEventRejoinScope&quot;: &quot;A String&quot;, # The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="write">write(parent, body=None, x__xgafv=None)</code>
+  <pre>Writes a single user event.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+  &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+  &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+  &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+  &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+  &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+    &quot;A String&quot;,
+  ],
+  &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;A String&quot;,
+  ],
+  &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+    { # Detailed product information associated with a user event.
+      &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+        &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+          &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+            &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+        &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+        &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          &quot;A String&quot;,
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+        &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+          &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        },
+        &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          &quot;A String&quot;,
+        ],
+        &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      },
+      &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+    },
+  ],
+  &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+    &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+    &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+    &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+    &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+  },
+  &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+  &quot;userInfo&quot;: { # Information of an end user. # User information.
+    &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+  &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+  &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+  &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+  &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+  &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+    &quot;A String&quot;,
+  ],
+  &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;A String&quot;,
+  ],
+  &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+    { # Detailed product information associated with a user event.
+      &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+        &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+          &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+            &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+        &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+        &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          &quot;A String&quot;,
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+        &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+          &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        },
+        &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          &quot;A String&quot;,
+        ],
+        &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      },
+      &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+    },
+  ],
+  &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+    &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+    &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+    &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+    &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+  },
+  &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+  &quot;userInfo&quot;: { # Information of an end user. # User information.
+    &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.html b/docs/dyn/retail_v2alpha.projects.locations.html
new file mode 100644
index 0000000..685edb2
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.catalogs.html">catalogs()</a></code>
+</p>
+<p class="firstline">Returns the catalogs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2alpha.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2alpha.projects.locations.operations.html b/docs/dyn/retail_v2alpha.projects.locations.operations.html
new file mode 100644
index 0000000..0bf7259
--- /dev/null
+++ b/docs/dyn/retail_v2alpha.projects.locations.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2alpha.html">Retail API</a> . <a href="retail_v2alpha.projects.html">projects</a> . <a href="retail_v2alpha.projects.locations.html">locations</a> . <a href="retail_v2alpha.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.html b/docs/dyn/retail_v2beta.html
new file mode 100644
index 0000000..74562ab
--- /dev/null
+++ b/docs/dyn/retail_v2beta.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.html b/docs/dyn/retail_v2beta.projects.html
new file mode 100644
index 0000000..89d36ad
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.html
new file mode 100644
index 0000000..efb65d4
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2beta.projects.locations.catalogs.branches.html">branches</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.branches.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.branches.products.html">products()</a></code>
+</p>
+<p class="firstline">Returns the products Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.operations.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.operations.html
new file mode 100644
index 0000000..065278f
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.operations.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2beta.projects.locations.catalogs.branches.html">branches</a> . <a href="retail_v2beta.projects.locations.catalogs.branches.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html
new file mode 100644
index 0000000..87a9551
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html
@@ -0,0 +1,488 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2beta.projects.locations.catalogs.branches.html">branches</a> . <a href="retail_v2beta.projects.locations.catalogs.branches.products.html">products</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, productId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Product.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a Product.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets a Product.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates a Product.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, productId=None, x__xgafv=None)</code>
+  <pre>Creates a Product.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}
+
+  productId: string, Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission to create the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. This field must be unique among all Products with the same parent. Otherwise, an ALREADY_EXISTS error is returned. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a Product.
+
+Args:
+  name: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to delete the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to delete does not exist, a NOT_FOUND error is returned. The Product to delete can neither be a Product.Type.COLLECTION Product member nor a Product.Type.PRIMARY Product with more than one variants. Otherwise, an INVALID_ARGUMENT error is returned. All inventory information for the named Product will be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets a Product.
+
+Args:
+  name: string, Required. Full resource name of Product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/some_product_id`. If the caller does not have permission to access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the requested Product does not exist, a NOT_FOUND error is returned. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
+  <pre>Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.
+
+Args:
+  parent: string, Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires products.create permission. If updateMask is specified, requires products.update permission. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for Import methods.
+  &quot;errorsConfig&quot;: { # Configuration of destination for Import related errors. # The desired location of errors incurred during the Import.
+    &quot;gcsPrefix&quot;: &quot;A String&quot;, # Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.
+  },
+  &quot;inputConfig&quot;: { # The input config source for products. # Required. The desired input location of the data.
+    &quot;bigQuerySource&quot;: { # BigQuery source import data from. # BigQuery input source.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;datasetId&quot;: &quot;A String&quot;, # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      &quot;gcsStagingDir&quot;: &quot;A String&quot;, # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      &quot;projectId&quot;: &quot;A String&quot;, # The project id (can be project # or id) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project id from the parent request.
+      &quot;tableId&quot;: &quot;A String&quot;, # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+    &quot;gcsSource&quot;: { # Google Cloud Storage location for input content. format. # Google Cloud Storage location for the input content.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mcc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;inputUris&quot;: [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;productInlineSource&quot;: { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products.
+      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 10k items.
+        { # Product captures all metadata information of items to be recommended or searched.
+          &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+          &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+          &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+          &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+            &quot;A String&quot;,
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+          &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+          &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            { # Product thumbnail/detail image.
+              &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+              &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            },
+          ],
+          &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+          &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+            &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+            &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+            &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          },
+          &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+          &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+            &quot;A String&quot;,
+          ],
+          &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+          &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+          &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        },
+      ],
+    },
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # Indicates which fields in the provided imported &#x27;products&#x27; to update. If not set, will by default update all fields.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, allowMissing=None, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates a Product.
+
+Args:
+  name: string, Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}
+
+  allowMissing: boolean, If set to true, and the Product is not found, a new Product will be created. In this situation, `update_mask` is ignored.
+  updateMask: string, Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Product captures all metadata information of items to be recommended or searched.
+  &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+  &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+  &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+  &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+    &quot;A String&quot;,
+  ],
+  &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+  &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+  &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+    { # Product thumbnail/detail image.
+      &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+      &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+  &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+    &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+    &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+    &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+    &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+  },
+  &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+  &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+    &quot;A String&quot;,
+  ],
+  &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+  &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+  &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.html
new file mode 100644
index 0000000..ddf57c6
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.html
@@ -0,0 +1,197 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.branches.html">branches()</a></code>
+</p>
+<p class="firstline">Returns the branches Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.placements.html">placements()</a></code>
+</p>
+<p class="firstline">Returns the placements Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.userEvents.html">userEvents()</a></code>
+</p>
+<p class="firstline">Returns the userEvents Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists all the Catalogs associated with 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>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the Catalogs.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists all the Catalogs associated with the project.
+
+Args:
+  parent: string, Required. The account resource name with an associated location. If the caller does not have permission to list Catalogs under this location, regardless of whether or not this location exists, a PERMISSION_DENIED error is returned. (required)
+  pageSize: integer, Maximum number of Catalogs to return. If unspecified, defaults to 50. The maximum allowed value is 1000. Values above 1000 will be coerced to 1000. If this field is negative, an INVALID_ARGUMENT is returned.
+  pageToken: string, A page token ListCatalogsResponse.next_page_token, received from a previous CatalogService.ListCatalogs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to CatalogService.ListCatalogs must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response for CatalogService.ListCatalogs method.
+  &quot;catalogs&quot;: [ # All the customer&#x27;s Catalogs.
+    { # The catalog configuration.
+      &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+      &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+        &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+        &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+      },
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be sent as ListCatalogsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the Catalogs.
+
+Args:
+  name: string, Required. Immutable. The fully qualified resource name of the catalog. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The catalog configuration.
+  &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+  &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+    &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+    &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+  },
+}
+
+  updateMask: string, Indicates which fields in the provided Catalog to update. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The catalog configuration.
+  &quot;displayName&quot;: &quot;A String&quot;, # Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the catalog.
+  &quot;productLevelConfig&quot;: { # Configures what level the product should be uploaded with regards to how users will be send events and how predictions will be made. # Required. The product level configuration.
+    &quot;ingestionProductType&quot;: &quot;A String&quot;, # The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can only ingest Product.Type.PRIMARY Products. This means Product.primary_product_id can only be empty or set to the same value as Product.id. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+    &quot;merchantCenterProductIdField&quot;: &quot;A String&quot;, # Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.operations.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.operations.html
new file mode 100644
index 0000000..fc69350
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2beta.projects.locations.catalogs.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html
new file mode 100644
index 0000000..066cc0f
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.placements.html
@@ -0,0 +1,222 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2beta.projects.locations.catalogs.placements.html">placements</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#predict">predict(placement, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Makes a recommendation prediction.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="predict">predict(placement, body=None, x__xgafv=None)</code>
+  <pre>Makes a recommendation prediction.
+
+Args:
+  placement: string, Required. Full resource name of the format: {name=projects/*/locations/global/catalogs/default_catalog/placements/*} The ID of the Recommendations AI placement. Before you can request predictions from your model, you must create at least one placement for it. For more information, see [Managing placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for Predict method.
+  &quot;filter&quot;: &quot;A String&quot;, # Filter for restricting prediction results with a length limit of 5,000 characters. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to products that match all of the specified tags. Boolean operators `OR` and `NOT` are supported if the expression is enclosed in parentheses, and must be separated from the tag values by a space. `-&quot;tagA&quot;` is also supported and is equivalent to `NOT &quot;tagA&quot;`. Tag values must be double quoted UTF-8 encoded strings with a size limit of 1,000 characters. Note: &quot;Recently viewed&quot; models don&#x27;t support tag filtering at the moment. * filterOutOfStockItems. Restricts predictions to products that do not have a stockState value of OUT_OF_STOCK. Examples: * tag=(&quot;Red&quot; OR &quot;Blue&quot;) tag=&quot;New-Arrival&quot; tag=(NOT &quot;promotional&quot;) * filterOutOfStockItems tag=(-&quot;promotional&quot;) * filterOutOfStockItems If your filter blocks all prediction results, nothing will be returned. If you want generic (unfiltered) popular products to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.
+  &quot;labels&quot;: { # The labels for the predict request. * Label keys can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * Non-zero label values can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * No more than 64 labels can be associated with a given request. See https://goo.gl/xmQnxf for more information on and examples of labels.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;pageSize&quot;: 42, # Maximum number of results to return per page. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.
+  &quot;pageToken&quot;: &quot;A String&quot;, # The previous PredictResponse.next_page_token.
+  &quot;params&quot;: { # Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction &#x27;score&#x27; corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given &#x27;score&#x27; indicates the probability of an product being clicked/purchased given the user&#x27;s context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results.
+    &quot;a_key&quot;: &quot;&quot;,
+  },
+  &quot;userEvent&quot;: { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website. # Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won&#x27;t be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging.
+    &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+      &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+        &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          3.14,
+        ],
+        &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+          &quot;A String&quot;,
+        ],
+      },
+    },
+    &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+    &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+    &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+    &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+    &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+      &quot;A String&quot;,
+    ],
+    &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;A String&quot;,
+    ],
+    &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+    &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+      { # Detailed product information associated with a user event.
+        &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+          &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+          &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+          &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+          &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+            &quot;A String&quot;,
+          ],
+          &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+          &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+          &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            { # Product thumbnail/detail image.
+              &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+              &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            },
+          ],
+          &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+          &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+            &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+            &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+            &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+          },
+          &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+          &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+            &quot;A String&quot;,
+          ],
+          &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+          &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+          &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+        },
+        &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+      },
+    ],
+    &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+      &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+      &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+      &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+      &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+      &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+    },
+    &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+    &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+    &quot;userInfo&quot;: { # Information of an end user. # User information.
+      &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+      &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+      &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+    },
+    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;validateOnly&quot;: True or False, # Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for predict method.
+  &quot;attributionToken&quot;: &quot;A String&quot;, # A unique attribution token. This should be included in the UserEvent logs resulting from this recommendation, which enables accurate attribution of recommendation model performance.
+  &quot;missingIds&quot;: [ # IDs of products in the request that were missing from the inventory.
+    &quot;A String&quot;,
+  ],
+  &quot;results&quot;: [ # A list of recommended products. The order represents the ranking (from the most relevant product to the least).
+    { # PredictionResult represents the recommendation prediction results.
+      &quot;id&quot;: &quot;A String&quot;, # ID of the recommended product
+      &quot;metadata&quot;: { # Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Will be set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnScore` is set to true in `PredictRequest.params`.
+        &quot;a_key&quot;: &quot;&quot;,
+      },
+    },
+  ],
+  &quot;validateOnly&quot;: True or False, # True if the validateOnly property was set in the request.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html
new file mode 100644
index 0000000..322521f
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.userEvents.html
@@ -0,0 +1,555 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2beta.projects.locations.catalogs.userEvents.html">userEvents</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#collect">collect(parent, ets=None, uri=None, userEvent=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.</p>
+<p class="toc_element">
+  <code><a href="#import_">import_(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.</p>
+<p class="toc_element">
+  <code><a href="#purge">purge(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.</p>
+<p class="toc_element">
+  <code><a href="#rejoin">rejoin(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.</p>
+<p class="toc_element">
+  <code><a href="#write">write(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Writes a single user event.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="collect">collect(parent, ets=None, uri=None, userEvent=None, x__xgafv=None)</code>
+  <pre>Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Retail API JavaScript pixel and Google Tag Manager. Users should not call this method directly.
+
+Args:
+  parent: string, Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  ets: string, The event timestamp in milliseconds. This prevents browser caching of otherwise identical get requests. The name is abbreviated to reduce the payload bytes.
+  uri: string, The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.
+  userEvent: string, Required. URL encoded UserEvent proto with a length limit of 2,000,000 characters.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Message that represents an arbitrary HTTP body. It should only be used for payload formats that can&#x27;t be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.
+  &quot;contentType&quot;: &quot;A String&quot;, # The HTTP Content-Type header value specifying the content type of the body.
+  &quot;data&quot;: &quot;A String&quot;, # The HTTP request/response body as raw binary.
+  &quot;extensions&quot;: [ # Application specific response metadata. Must be set in the first response for streaming APIs.
+    {
+      &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="import_">import_(parent, body=None, x__xgafv=None)</code>
+  <pre>Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.
+
+Args:
+  parent: string, Required. `projects/1234/locations/global/catalogs/default_catalog` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for the ImportUserEvents request.
+  &quot;errorsConfig&quot;: { # Configuration of destination for Import related errors. # The desired location of errors incurred during the Import. Cannot be set for inline user event imports.
+    &quot;gcsPrefix&quot;: &quot;A String&quot;, # Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.
+  },
+  &quot;inputConfig&quot;: { # The input config source for user events. # Required. The desired input location of the data.
+    &quot;bigQuerySource&quot;: { # BigQuery source import data from. # Required. BigQuery input source.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;datasetId&quot;: &quot;A String&quot;, # Required. The BigQuery data set to copy the data from with a length limit of 1,024 characters.
+      &quot;gcsStagingDir&quot;: &quot;A String&quot;, # Intermediate Cloud Storage directory used for the import with a length limit of 2,000 characters. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.
+      &quot;projectId&quot;: &quot;A String&quot;, # The project id (can be project # or id) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project id from the parent request.
+      &quot;tableId&quot;: &quot;A String&quot;, # Required. The BigQuery table to copy the data from with a length limit of 1,024 characters.
+    },
+    &quot;gcsSource&quot;: { # Google Cloud Storage location for input content. format. # Required. Google Cloud Storage location for the input content.
+      &quot;dataSchema&quot;: &quot;A String&quot;, # The schema to use when parsing the data from the source. Supported values for product imports: * `product` (default): One JSON Product per line. Each product must have a valid Product.id. * `product_merchant_center`: See [Importing catalog data from Merchant Center](https://cloud.google.com/retail/recommendations-ai/docs/upload-catalog#mcc). Supported values for user events imports: * `user_event` (default): One JSON UserEvent per line. * `user_event_ga360`: Using https://support.google.com/analytics/answer/3437719?hl=en.
+      &quot;inputUris&quot;: [ # Required. Google Cloud Storage URIs to input files. URI can be up to 2000 characters long. URIs can match the full object path (for example, `gs://bucket/directory/object.json`) or a pattern matching one or more files, such as `gs://bucket/directory/*.json`. A request can contain at most 100 files, and each file can be up to 2 GB. See [Importing product information](https://cloud.google.com/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.
+        &quot;A String&quot;,
+      ],
+    },
+    &quot;userEventInlineSource&quot;: { # The inline source for the input config for ImportUserEvents method. # Required. The Inline source for the input content for UserEvents.
+      &quot;userEvents&quot;: [ # Required. A list of user events to import. Recommended max of 10k items.
+        { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+          &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+            &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+              &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                3.14,
+              ],
+              &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                &quot;A String&quot;,
+              ],
+            },
+          },
+          &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+          &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+          &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+          &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+          &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+            &quot;A String&quot;,
+          ],
+          &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;A String&quot;,
+          ],
+          &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+          &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+            { # Detailed product information associated with a user event.
+              &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+                &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+                  &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+                    &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                      3.14,
+                    ],
+                    &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                },
+                &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+                &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+                &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+                &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+                  &quot;A String&quot;,
+                ],
+                &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+                &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+                &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+                  { # Product thumbnail/detail image.
+                    &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+                    &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+                    &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+                  },
+                ],
+                &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+                &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+                  &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+                  &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+                  &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+                  &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+                },
+                &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+                &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+                  &quot;A String&quot;,
+                ],
+                &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+                &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+                &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+              },
+              &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+            },
+          ],
+          &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+            &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+            &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+            &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+            &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+          },
+          &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+          &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+          &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+          &quot;userInfo&quot;: { # Information of an end user. # User information.
+            &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+            &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+            &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+            &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+          &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+        },
+      ],
+    },
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="purge">purge(parent, body=None, x__xgafv=None)</code>
+  <pre>Deletes permanently all user events specified by the filter provided. Depending on the number of events specified by the filter, this operation could take hours or days to complete. To test a filter, use the list command first.
+
+Args:
+  parent: string, Required. The resource name of the catalog under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for PurgeUserEvents method.
+  &quot;filter&quot;: &quot;A String&quot;, # Required. The filter string to specify the events to be deleted with a length limit of 5,000 characters. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: Double quoted UserEvent.event_type string. * `eventTime`: in ISO 8601 &quot;zulu&quot; format. * `visitorId`: Double quoted string. Specifying this will delete all events associated with a visitor. * `userId`: Double quoted string. Specifying this will delete all events associated with a user. Examples: * Deleting all events in a time range: `eventTime &gt; &quot;2012-04-23T18:25:43.511Z&quot; eventTime &lt; &quot;2012-04-23T18:30:43.511Z&quot;` * Deleting specific eventType in time range: `eventTime &gt; &quot;2012-04-23T18:25:43.511Z&quot; eventType = &quot;detail-page-view&quot;` * Deleting all events for a specific visitor: `visitorId = &quot;visitor1024&quot;` The filtering fields are assumed to have an implicit AND.
+  &quot;force&quot;: True or False, # Actually perform the purge. If `force` is set to false, the method will return the expected purge count without deleting any user events.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="rejoin">rejoin(parent, body=None, x__xgafv=None)</code>
+  <pre>Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a &#x27;join&#x27; operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request message for RejoinUserEvents method.
+  &quot;userEventRejoinScope&quot;: &quot;A String&quot;, # The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="write">write(parent, body=None, x__xgafv=None)</code>
+  <pre>Writes a single user event.
+
+Args:
+  parent: string, Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+  &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+  &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+  &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+  &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+  &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+    &quot;A String&quot;,
+  ],
+  &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;A String&quot;,
+  ],
+  &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+    { # Detailed product information associated with a user event.
+      &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+        &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+          &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+            &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+        &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+        &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          &quot;A String&quot;,
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+        &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+          &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        },
+        &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          &quot;A String&quot;,
+        ],
+        &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      },
+      &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+    },
+  ],
+  &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+    &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+    &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+    &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+    &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+  },
+  &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+  &quot;userInfo&quot;: { # Information of an end user. # User information.
+    &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # UserEvent captures all metadata information Retail API needs to know about how end users interact with customers&#x27; website.
+  &quot;attributes&quot;: { # Extra user event features to include in the recommendation model. The key must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.
+    &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+      &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        3.14,
+      ],
+      &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+        &quot;A String&quot;,
+      ],
+    },
+  },
+  &quot;attributionToken&quot;: &quot;A String&quot;, # Highly recommended for user events that are the result of PredictionService.Predict. This field enables accurate attribution of recommendation model performance. The value must be a valid PredictResponse.attribution_token for user events that are the result of PredictionService.Predict. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased product. If user clicks on product K in the recommendation results, pass PredictResponse.attribution_token as a URL parameter to product K&#x27;s page. When recording events on product K&#x27;s page, log the PredictResponse.attribution_token to this field.
+  &quot;cartId&quot;: &quot;A String&quot;, # The id or name of the associated shopping cart. This id is used to associate multiple items added or present in the cart before purchase. This can only be set for `add-to-cart`, `purchase-complete`, or `shopping-cart-page-view` events.
+  &quot;eventTime&quot;: &quot;A String&quot;, # Only required for UserEventService.ImportUserEvents method. Timestamp of when the user event happened.
+  &quot;eventType&quot;: &quot;A String&quot;, # Required. User event type. Allowed values are: * `add-to-cart`: Products being added to cart. * `category-page-view`: Special pages such as sale or promotion pages viewed. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed. * `promotion-offered`: Promotion is offered to a user. * `promotion-not-offered`: Promotion is not offered to a user. * `purchase-complete`: User finishing a purchase. * `search`: Product search. * `shopping-cart-page-view`: User viewing a shopping cart.
+  &quot;experimentIds&quot;: [ # A list of identifiers for the independent experiment groups this user event belongs to. This is used to distinguish between user events associated with different experiment setups (e.g. using Retail API, using different recommendation models).
+    &quot;A String&quot;,
+  ],
+  &quot;pageCategories&quot;: [ # The categories associated with a category page. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: &quot;pageCategories&quot; : [&quot;Sales &gt; 2017 Black Friday Deals&quot;]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;A String&quot;,
+  ],
+  &quot;pageViewId&quot;: &quot;A String&quot;, # A unique id of a web page view. This should be kept the same for all user events triggered from the same pageview. For example, an item detail page view could trigger multiple events as the user is browsing the page. The `pageViewId` property should be kept the same for all these events so that they can be grouped together properly. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;productDetails&quot;: [ # The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished broswing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished broswing the whole page yet.
+    { # Detailed product information associated with a user event.
+      &quot;product&quot;: { # Product captures all metadata information of items to be recommended or searched. # Required. Product information. Only Product.id field is used when ingesting an event, all other product fields are ignored as we will look them up from the catalog.
+        &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 150 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
+          &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
+            &quot;numbers&quot;: [ # The numerical values of this custom attribute. For example, `[2.3, 15.4]` when the key is &quot;lengths_cm&quot;. At most 400 values are allowed.Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              3.14,
+            ],
+            &quot;text&quot;: [ # The textual values of this custom attribute. For example, `[&quot;yellow&quot;, &quot;green&quot;]` when the key is &quot;color&quot;. At most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. Otherwise, an INVALID_ARGUMENT error is returned. Exactly one of text or numbers should be set. Otherwise, an INVALID_ARGUMENT error is returned.
+              &quot;A String&quot;,
+            ],
+          },
+        },
+        &quot;availability&quot;: &quot;A String&quot;, # The online availability of the Product. Default to Availability.IN_STOCK. Google Merchant Center Property [availability](https://support.google.com/merchants/answer/6324448). Schema.org Property [Offer.availability](https://schema.org/availability).
+        &quot;availableQuantity&quot;: 42, # The available quantity of the item.
+        &quot;availableTime&quot;: &quot;A String&quot;, # The timestamp when this Product becomes available for recommendation.
+        &quot;categories&quot;: [ # Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use &#x27;&gt;&#x27; sign to separate different hierarchies. If &#x27;&gt;&#x27; is part of the category name, please replace it with other character(s). For example, if a shoes product belongs to both [&quot;Shoes &amp; Accessories&quot; -&gt; &quot;Shoes&quot;] and [&quot;Sports &amp; Fitness&quot; -&gt; &quot;Athletic Clothing&quot; -&gt; &quot;Shoes&quot;], it could be represented as: &quot;categories&quot;: [ &quot;Shoes &amp; Accessories &gt; Shoes&quot;, &quot;Sports &amp; Fitness &gt; Athletic Clothing &gt; Shoes&quot; ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436
+          &quot;A String&quot;,
+        ],
+        &quot;description&quot;: &quot;A String&quot;, # Product description. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [description](https://support.google.com/merchants/answer/6324468). schema.org property [Product.description](https://schema.org/description).
+        &quot;id&quot;: &quot;A String&quot;, # Immutable. Product identifier, which is the final component of name. For example, this field is &quot;id_1&quot;, if name is `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/id_1`. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [id](https://support.google.com/merchants/answer/6324405). Schema.org Property [Product.sku](https://schema.org/sku).
+        &quot;images&quot;: [ # Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+          { # Product thumbnail/detail image.
+            &quot;height&quot;: 42, # Height of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+            &quot;uri&quot;: &quot;A String&quot;, # Required. URI of the image. This field must be a valid UTF-8 encoded URI with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).
+            &quot;width&quot;: 42, # Width of the image in number of pixels. This field must be nonnegative. Otherwise, an INVALID_ARGUMENT error is returned.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Immutable. Full resource name of the product, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch/products/product_id`. The branch ID must be &quot;default_branch&quot;.
+        &quot;priceInfo&quot;: { # The price information of a Product. # Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371).
+          &quot;cost&quot;: 3.14, # The costs associated with the sale of a particular product. Used for gross profit reporting. * Profit = price - cost Google Merchant Center property [cost_of_goods_sold](https://support.google.com/merchants/answer/9017895).
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html). If this field is an unrecognizable currency code, an INVALID_ARGUMENT error is returned.
+          &quot;originalPrice&quot;: 3.14, # Price of the product without any discount. If zero, by default set to be the price.
+          &quot;price&quot;: 3.14, # Price of the product. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371). Schema.org property [Offer.priceSpecification](https://schema.org/priceSpecification).
+        },
+        &quot;primaryProductId&quot;: &quot;A String&quot;, # Variant group identifier. Must be an id, with the same parent branch with this product. Otherwise, an error is thrown. For Type.PRIMARY Products, this field can only be empty or set to the same value as id. For VARIANT Products, this field cannot be empty. A maximum of 2,000 products are allowed to share the same Type.PRIMARY Product. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center Property [item_group_id](https://support.google.com/merchants/answer/6324507). Schema.org Property [Product.inProductGroupWithID](https://schema.org/inProductGroupWithID). This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).
+        &quot;tags&quot;: [ # Custom tags associated with the product. At most 250 values are allowed per Product. This value must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This tag can be used for filtering recommendation results by passing the tag as part of the PredictRequest.filter. Google Merchant Center property [custom_label_0–4](https://support.google.com/merchants/answer/6324473).
+          &quot;A String&quot;,
+        ],
+        &quot;title&quot;: &quot;A String&quot;, # Required. Product title. This field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [title](https://support.google.com/merchants/answer/6324415). Schema.org property [Product.name](https://schema.org/name).
+        &quot;type&quot;: &quot;A String&quot;, # Immutable. The type of the product. This field is output-only. Default to Catalog.product_level_config.ingestion_product_type if unset.
+        &quot;uri&quot;: &quot;A String&quot;, # Canonical URL directly linking to the product detail page. It is strongly recommended to provide a valid uri for the product, otherwise the service performance could be significantly degraded. This field must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [link](https://support.google.com/merchants/answer/6324416). Schema.org property [Offer.url](https://schema.org/url).
+      },
+      &quot;quantity&quot;: 42, # Quantity of the product associated with the user event. For example, this field will be 2 if two products are added to the shopping cart for `purchase-complete` event. Required for `add-to-cart` and `purchase-complete` event types.
+    },
+  ],
+  &quot;purchaseTransaction&quot;: { # A transaction represents the entire purchase transaction. # A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+    &quot;cost&quot;: 3.14, # All the costs associated with the products. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs, such that: * Profit = revenue - tax - cost
+    &quot;currencyCode&quot;: &quot;A String&quot;, # Required. Currency code. Use three-character ISO-4217 code.
+    &quot;id&quot;: &quot;A String&quot;, # The transaction ID with a length limit of 128 characters.
+    &quot;revenue&quot;: 3.14, # Required. Total non-zero revenue or grand total associated with the transaction. This value include shipping, tax, or other adjustments to total revenue that you want to include as part of your revenue calculations.
+    &quot;tax&quot;: 3.14, # All the taxes associated with the transaction.
+  },
+  &quot;referrerUri&quot;: &quot;A String&quot;, # The referrer URL of the current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically.
+  &quot;searchQuery&quot;: &quot;A String&quot;, # The user&#x27;s search query. The value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.
+  &quot;uri&quot;: &quot;A String&quot;, # Complete URL (window.location.href) of the user&#x27;s current page. When using the client side event reporting with JavaScript pixel and Google Tag Manager, this value is filled in automatically. Maximum length 5,000 characters.
+  &quot;userInfo&quot;: { # Information of an end user. # User information.
+    &quot;directUserRequest&quot;: True or False, # True if the request is made directly from the end user, in which case the ip_address and user_agent can be populated from the HTTP request. This flag should be set only if the API request is made directly from the end user such as a mobile app (and not if a gateway or a server is processing and pushing the user events). This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent.
+    &quot;ipAddress&quot;: &quot;A String&quot;, # The end user&#x27;s IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. &quot;104.133.9.80&quot;) or an IPv6 address (e.g. &quot;2001:0db8:85a3:0000:0000:8a2e:0370:7334&quot;). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userAgent&quot;: &quot;A String&quot;, # User agent as included in the HTTP header. The field must be a UTF-8 encoded string with a length limit of 1,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the client side event reporting with GTM or JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.
+    &quot;userId&quot;: &quot;A String&quot;, # Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+  },
+  &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.html b/docs/dyn/retail_v2beta.projects.locations.html
new file mode 100644
index 0000000..07185da
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.html
@@ -0,0 +1,96 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.catalogs.html">catalogs()</a></code>
+</p>
+<p class="firstline">Returns the catalogs Resource.</p>
+
+<p class="toc_element">
+  <code><a href="retail_v2beta.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/retail_v2beta.projects.locations.operations.html b/docs/dyn/retail_v2beta.projects.locations.operations.html
new file mode 100644
index 0000000..f5f809a
--- /dev/null
+++ b/docs/dyn/retail_v2beta.projects.locations.operations.html
@@ -0,0 +1,187 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="retail_v2beta.html">Retail API</a> . <a href="retail_v2beta.projects.html">projects</a> . <a href="retail_v2beta.projects.locations.html">locations</a> . <a href="retail_v2beta.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/run_v1.namespaces.configurations.html b/docs/dyn/run_v1.namespaces.configurations.html
index f135c3e..13fc2ea 100644
--- a/docs/dyn/run_v1.namespaces.configurations.html
+++ b/docs/dyn/run_v1.namespaces.configurations.html
@@ -134,7 +134,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -168,7 +168,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -186,7 +186,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -195,12 +195,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -254,7 +254,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -300,13 +300,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -320,27 +347,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -420,7 +447,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -454,7 +481,7 @@
                 &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
               },
             ],
-            &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+            &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
             &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
             &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
@@ -472,7 +499,7 @@
                   { # EnvVar represents an environment variable present in a Container.
                     &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                     &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                       &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                         &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -481,12 +508,12 @@
                         &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                       },
-                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                           &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                       },
                     },
@@ -540,7 +567,7 @@
                   },
                   &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                 },
-                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
                 &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
                   { # ContainerPort represents a network port in a single container.
                     &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -586,13 +613,40 @@
                 &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                   &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                 },
+                &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                    &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                  &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+                  &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                    &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                      { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                        &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                      },
+                    ],
+                    &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                    &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+                  },
+                  &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+                  &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+                  &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                    &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+                  },
+                  &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                },
                 &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
                 &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
                   { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                     &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
                   },
                 ],
@@ -606,27 +660,27 @@
                 &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
                   &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
                 },
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-                &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+                &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
                 },
               },
             ],
diff --git a/docs/dyn/run_v1.namespaces.domainmappings.html b/docs/dyn/run_v1.namespaces.domainmappings.html
index 4ac6a1b..1e4e6ed 100644
--- a/docs/dyn/run_v1.namespaces.domainmappings.html
+++ b/docs/dyn/run_v1.namespaces.domainmappings.html
@@ -135,7 +135,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -168,7 +168,7 @@
   },
 }
 
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -208,7 +208,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -249,7 +249,7 @@
 Args:
   name: string, The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required)
   apiVersion: string, Cloud Run currently ignores this parameter.
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   kind: string, Cloud Run currently ignores this parameter.
   propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.
   x__xgafv: string, V1 error format.
@@ -332,7 +332,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -421,7 +421,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
diff --git a/docs/dyn/run_v1.namespaces.revisions.html b/docs/dyn/run_v1.namespaces.revisions.html
index 017fdd8..8c8763b 100644
--- a/docs/dyn/run_v1.namespaces.revisions.html
+++ b/docs/dyn/run_v1.namespaces.revisions.html
@@ -99,7 +99,7 @@
 Args:
   name: string, The name of the revision to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required)
   apiVersion: string, Cloud Run currently ignores this parameter.
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   kind: string, Cloud Run currently ignores this parameter.
   propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.
   x__xgafv: string, V1 error format.
@@ -182,7 +182,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -200,7 +200,7 @@
           { # EnvVar represents an environment variable present in a Container.
             &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
             &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-            &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+            &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
               &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                 &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                 &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -209,12 +209,12 @@
                 &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                 &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
               },
-              &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+              &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                 &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                   &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                 },
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                 &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
               },
             },
@@ -268,7 +268,7 @@
           },
           &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
         },
-        &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+        &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
         &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
           { # ContainerPort represents a network port in a single container.
             &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -314,13 +314,40 @@
         &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
           &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
         },
+        &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+          &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+            &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+          &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+            &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+            &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+              { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+              },
+            ],
+            &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+            &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+          },
+          &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+          &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+          &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+          &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+            &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+            &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+          },
+          &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+        },
         &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
         &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-        &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+        &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
           { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-            &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-            &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+            &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+            &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
             &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
           },
         ],
@@ -334,27 +361,27 @@
         &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
           &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
           &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-            { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+            { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
               &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
             },
           ],
           &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
           &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
         },
-        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-        &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+        &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
           &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-          &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-            { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+          &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+            { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
               &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
             },
           ],
           &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-          &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+          &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
         },
       },
     ],
@@ -433,7 +460,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -451,7 +478,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -460,12 +487,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -519,7 +546,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -565,13 +592,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -585,27 +639,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
diff --git a/docs/dyn/run_v1.namespaces.routes.html b/docs/dyn/run_v1.namespaces.routes.html
index 355885d..4ff64a6 100644
--- a/docs/dyn/run_v1.namespaces.routes.html
+++ b/docs/dyn/run_v1.namespaces.routes.html
@@ -134,7 +134,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -235,7 +235,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
diff --git a/docs/dyn/run_v1.namespaces.services.html b/docs/dyn/run_v1.namespaces.services.html
index d41fca4..85ce655 100644
--- a/docs/dyn/run_v1.namespaces.services.html
+++ b/docs/dyn/run_v1.namespaces.services.html
@@ -138,7 +138,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -172,7 +172,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -190,7 +190,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -199,12 +199,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -258,7 +258,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -304,13 +304,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -324,27 +351,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -392,7 +419,7 @@
   },
 }
 
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -432,7 +459,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -466,7 +493,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -484,7 +511,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -493,12 +520,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -552,7 +579,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -598,13 +625,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -618,27 +672,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -694,7 +748,7 @@
 Args:
   name: string, The name of the service to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required)
   apiVersion: string, Cloud Run currently ignores this parameter.
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   kind: string, Cloud Run currently ignores this parameter.
   propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.
   x__xgafv: string, V1 error format.
@@ -777,7 +831,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -811,7 +865,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -829,7 +883,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -838,12 +892,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -897,7 +951,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -943,13 +997,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -963,27 +1044,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -1087,7 +1168,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -1121,7 +1202,7 @@
                 &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
               },
             ],
-            &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+            &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
             &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
             &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
@@ -1139,7 +1220,7 @@
                   { # EnvVar represents an environment variable present in a Container.
                     &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                     &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                       &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                         &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -1148,12 +1229,12 @@
                         &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                       },
-                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                           &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                       },
                     },
@@ -1207,7 +1288,7 @@
                   },
                   &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                 },
-                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
                 &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
                   { # ContainerPort represents a network port in a single container.
                     &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -1253,13 +1334,40 @@
                 &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                   &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                 },
+                &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                    &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                  &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+                  &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                    &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                      { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                        &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                      },
+                    ],
+                    &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                    &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+                  },
+                  &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+                  &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+                  &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                    &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+                  },
+                  &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                },
                 &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
                 &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
                   { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                     &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
                   },
                 ],
@@ -1273,27 +1381,27 @@
                 &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
                   &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
                 },
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-                &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+                &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
                 },
               },
             ],
@@ -1393,7 +1501,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -1427,7 +1535,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -1445,7 +1553,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -1454,12 +1562,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -1513,7 +1621,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -1559,13 +1667,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -1579,27 +1714,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -1647,7 +1782,7 @@
   },
 }
 
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -1687,7 +1822,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -1721,7 +1856,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -1739,7 +1874,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -1748,12 +1883,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -1807,7 +1942,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -1853,13 +1988,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -1873,27 +2035,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
diff --git a/docs/dyn/run_v1.projects.locations.configurations.html b/docs/dyn/run_v1.projects.locations.configurations.html
index cf6bd0d..a27f08b 100644
--- a/docs/dyn/run_v1.projects.locations.configurations.html
+++ b/docs/dyn/run_v1.projects.locations.configurations.html
@@ -134,7 +134,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -168,7 +168,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -186,7 +186,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -195,12 +195,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -254,7 +254,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -300,13 +300,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -320,27 +347,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -420,7 +447,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -454,7 +481,7 @@
                 &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
               },
             ],
-            &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+            &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
             &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
             &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
@@ -472,7 +499,7 @@
                   { # EnvVar represents an environment variable present in a Container.
                     &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                     &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                       &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                         &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -481,12 +508,12 @@
                         &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                       },
-                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                           &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                       },
                     },
@@ -540,7 +567,7 @@
                   },
                   &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                 },
-                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
                 &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
                   { # ContainerPort represents a network port in a single container.
                     &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -586,13 +613,40 @@
                 &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                   &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                 },
+                &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                    &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                  &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+                  &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                    &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                      { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                        &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                      },
+                    ],
+                    &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                    &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+                  },
+                  &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+                  &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+                  &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                    &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+                  },
+                  &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                },
                 &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
                 &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
                   { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                     &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
                   },
                 ],
@@ -606,27 +660,27 @@
                 &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
                   &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
                 },
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-                &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+                &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
                 },
               },
             ],
diff --git a/docs/dyn/run_v1.projects.locations.domainmappings.html b/docs/dyn/run_v1.projects.locations.domainmappings.html
index 86b88a0..0136361 100644
--- a/docs/dyn/run_v1.projects.locations.domainmappings.html
+++ b/docs/dyn/run_v1.projects.locations.domainmappings.html
@@ -135,7 +135,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -168,7 +168,7 @@
   },
 }
 
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -208,7 +208,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -249,7 +249,7 @@
 Args:
   name: string, The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required)
   apiVersion: string, Cloud Run currently ignores this parameter.
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   kind: string, Cloud Run currently ignores this parameter.
   propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.
   x__xgafv: string, V1 error format.
@@ -332,7 +332,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -421,7 +421,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
diff --git a/docs/dyn/run_v1.projects.locations.revisions.html b/docs/dyn/run_v1.projects.locations.revisions.html
index b500752..49e993c 100644
--- a/docs/dyn/run_v1.projects.locations.revisions.html
+++ b/docs/dyn/run_v1.projects.locations.revisions.html
@@ -99,7 +99,7 @@
 Args:
   name: string, The name of the revision to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required)
   apiVersion: string, Cloud Run currently ignores this parameter.
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   kind: string, Cloud Run currently ignores this parameter.
   propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.
   x__xgafv: string, V1 error format.
@@ -182,7 +182,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -200,7 +200,7 @@
           { # EnvVar represents an environment variable present in a Container.
             &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
             &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-            &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+            &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
               &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                 &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                 &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -209,12 +209,12 @@
                 &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                 &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
               },
-              &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+              &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                 &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                   &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                 },
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                 &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
               },
             },
@@ -268,7 +268,7 @@
           },
           &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
         },
-        &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+        &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
         &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
           { # ContainerPort represents a network port in a single container.
             &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -314,13 +314,40 @@
         &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
           &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
         },
+        &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+          &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+            &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+              &quot;A String&quot;,
+            ],
+          },
+          &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+          &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+            &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+            &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+              { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+              },
+            ],
+            &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+            &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+          },
+          &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+          &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+          &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+          &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+            &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+            &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+          },
+          &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+        },
         &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
         &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-        &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+        &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
           { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-            &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-            &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+            &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+            &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
             &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
           },
         ],
@@ -334,27 +361,27 @@
         &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
           &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
           &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-            { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+            { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
               &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
             },
           ],
           &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
           &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
         },
-        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-        &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+        &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
           &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-          &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-            { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+          &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+            { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+              &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
               &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+              &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
             },
           ],
           &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-          &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+          &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
         },
       },
     ],
@@ -433,7 +460,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -451,7 +478,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -460,12 +487,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -519,7 +546,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -565,13 +592,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -585,27 +639,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
diff --git a/docs/dyn/run_v1.projects.locations.routes.html b/docs/dyn/run_v1.projects.locations.routes.html
index 3a57343..f51543a 100644
--- a/docs/dyn/run_v1.projects.locations.routes.html
+++ b/docs/dyn/run_v1.projects.locations.routes.html
@@ -134,7 +134,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -235,7 +235,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
diff --git a/docs/dyn/run_v1.projects.locations.services.html b/docs/dyn/run_v1.projects.locations.services.html
index fc5c567..be9d4f0 100644
--- a/docs/dyn/run_v1.projects.locations.services.html
+++ b/docs/dyn/run_v1.projects.locations.services.html
@@ -147,7 +147,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -181,7 +181,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -199,7 +199,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -208,12 +208,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -267,7 +267,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -313,13 +313,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -333,27 +360,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -401,7 +428,7 @@
   },
 }
 
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -441,7 +468,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -475,7 +502,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -493,7 +520,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -502,12 +529,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -561,7 +588,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -607,13 +634,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -627,27 +681,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -703,7 +757,7 @@
 Args:
   name: string, The name of the service to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number. (required)
   apiVersion: string, Cloud Run currently ignores this parameter.
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   kind: string, Cloud Run currently ignores this parameter.
   propagationPolicy: string, Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.
   x__xgafv: string, V1 error format.
@@ -786,7 +840,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -820,7 +874,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -838,7 +892,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -847,12 +901,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -906,7 +960,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -952,13 +1006,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -972,27 +1053,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -1144,7 +1225,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -1178,7 +1259,7 @@
                 &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
               },
             ],
-            &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+            &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
             &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
             &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
@@ -1196,7 +1277,7 @@
                   { # EnvVar represents an environment variable present in a Container.
                     &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                     &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                    &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                       &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                         &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -1205,12 +1286,12 @@
                         &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                       },
-                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                      &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                        &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                         &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                           &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                         },
-                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                         &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                       },
                     },
@@ -1264,7 +1345,7 @@
                   },
                   &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
                 },
-                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+                &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
                 &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
                   { # ContainerPort represents a network port in a single container.
                     &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -1310,13 +1391,40 @@
                 &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
                   &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
                 },
+                &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                    &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                      &quot;A String&quot;,
+                    ],
+                  },
+                  &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+                  &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                    &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                      { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                        &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                        &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                      },
+                    ],
+                    &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                    &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+                  },
+                  &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                  &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+                  &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+                  &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                    &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                    &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+                  },
+                  &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+                },
                 &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
                 &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+                &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
                   { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                    &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                    &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                     &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
                   },
                 ],
@@ -1330,27 +1438,27 @@
                 &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
                   &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
                 },
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-                &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+                &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
                   &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                    { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                  &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                    { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                      &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                       &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                      &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                     },
                   ],
                   &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+                  &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
                 },
               },
             ],
@@ -1450,7 +1558,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -1484,7 +1592,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -1502,7 +1610,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -1511,12 +1619,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -1570,7 +1678,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -1616,13 +1724,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -1636,27 +1771,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
@@ -1704,7 +1839,7 @@
   },
 }
 
-  dryRun: string, DryRun is a query string parameter which indicates that the server should run validation without persisting the request.
+  dryRun: string, Indicates that the server should validate the request and populate default values without persisting the request. Supported values: `all`
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -1744,7 +1879,7 @@
         &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
     ],
-    &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+    &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
     &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
     &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
   },
@@ -1778,7 +1913,7 @@
             &quot;uid&quot;: &quot;A String&quot;, # UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
           },
         ],
-        &quot;resourceVersion&quot;: &quot;A String&quot;, # (Optional) An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+        &quot;resourceVersion&quot;: &quot;A String&quot;, # Optional. An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server or omit the value to disable conflict-detection. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
         &quot;selfLink&quot;: &quot;A String&quot;, # (Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;
         &quot;uid&quot;: &quot;A String&quot;, # (Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
       },
@@ -1796,7 +1931,7 @@
               { # EnvVar represents an environment variable present in a Container.
                 &quot;name&quot;: &quot;A String&quot;, # Name of the environment variable. Must be a C_IDENTIFIER.
                 &quot;value&quot;: &quot;A String&quot;, # (Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to &quot;&quot;.
-                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
+                &quot;valueFrom&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported EnvVarSource represents a source for the value of an EnvVar. # (Optional) Cloud Run fully managed: supported Source for the environment variable&#x27;s value. Only supports secret_key_ref. Cloud Run for Anthos: supported Source for the environment variable&#x27;s value. Cannot be used if value is not empty.
                   &quot;configMapKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key from a ConfigMap. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a ConfigMap.
                     &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to select.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
@@ -1805,12 +1940,12 @@
                     &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The ConfigMap to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the ConfigMap or its key must be defined
                   },
-                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Selects a key of a secret in the pod&#x27;s namespace
-                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
+                  &quot;secretKeyRef&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecretKeySelector selects a key of a Secret. # (Optional) Cloud Run fully managed: supported. Selects a key (version) of a secret in Secret Manager. Cloud Run for Anthos: supported. Selects a key of a secret in the pod&#x27;s namespace.
+                    &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported A Cloud Secret Manager secret version. Must be &#x27;latest&#x27; for the latest version or an integer for a specific version. Cloud Run for Anthos: supported The key of the secret to select from. Must be a valid secret key.
                     &quot;localObjectReference&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. # This field should not be used directly as it is meant to be inlined directly into the message. Use the &quot;name&quot; field instead.
                       &quot;name&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                     },
-                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported The name of the secret in the pod&#x27;s namespace to select from.
                     &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its key must be defined
                   },
                 },
@@ -1864,7 +1999,7 @@
               },
               &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
             },
-            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL.
+            &quot;name&quot;: &quot;A String&quot;, # (Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names
             &quot;ports&quot;: [ # (Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.
               { # ContainerPort represents a network port in a single container.
                 &quot;containerPort&quot;: 42, # (Optional) Port number the container listens on. This must be a valid port number, 0 &lt; x &lt; 65536.
@@ -1910,13 +2045,40 @@
             &quot;securityContext&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
               &quot;runAsUser&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
             },
+            &quot;startupProbe&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: not supported Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;exec&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported ExecAction describes a &quot;run in container&quot; action. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message.
+                &quot;command&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Command is the command line to execute inside the container, the working directory for the command is root (&#x27;/&#x27;) in the container&#x27;s filesystem. The command is simply exec&#x27;d, it is not run inside a shell, so traditional shell instructions (&#x27;|&#x27;, etc) won&#x27;t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+                  &quot;A String&quot;,
+                ],
+              },
+              &quot;failureThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
+              &quot;httpGet&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGetAction describes an action based on HTTP Get requests. # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPGet specifies the http request to perform. A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Host name to connect to, defaults to the pod IP. You probably want to set &quot;Host&quot; in httpHeaders instead.
+                &quot;httpHeaders&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Custom headers to set in the request. HTTP allows repeated headers.
+                  { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported HTTPHeader describes a custom header to be used in HTTP probes
+                    &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field name
+                    &quot;value&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The header field value
+                  },
+                ],
+                &quot;path&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path to access on the HTTP server.
+                &quot;scheme&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Scheme to use for connecting to the host. Defaults to HTTP.
+              },
+              &quot;initialDelaySeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+              &quot;periodSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
+              &quot;successThreshold&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
+              &quot;tcpSocket&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocketAction describes an action based on opening a socket # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message.
+                &quot;host&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Optional: Host name to connect to, defaults to the pod IP.
+                &quot;port&quot;: 42, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto&#x27;s inability to properly support the IntOrString golang type.
+              },
+              &quot;timeoutSeconds&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+            },
             &quot;terminationMessagePath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path at which the file to which the container&#x27;s termination message will be written is mounted into the container&#x27;s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log.
             &quot;terminationMessagePolicy&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
-            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
+            &quot;volumeMounts&quot;: [ # (Optional) Cloud Run fully managed: supported Volume to mount into the container&#x27;s filesystem. Only supports SecretVolumeSources. Cloud Run for Anthos: supported Pod volumes to mount into the container&#x27;s filesystem.
               { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported VolumeMount describes a mounting of a Volume within a container.
-                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
-                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported This must match the Name of a Volume.
-                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
+                &quot;mountPath&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Path within the container at which the volume should be mounted. Must not contain &#x27;:&#x27;.
+                &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported This must match the Name of a Volume.
+                &quot;readOnly&quot;: True or False, # (Optional) Cloud Run fully managed: supported Cloud Run for Anthos: supported Only true is accepted. Defaults to true.
                 &quot;subPath&quot;: &quot;A String&quot;, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Path within the volume from which the container&#x27;s volume should be mounted. Defaults to &quot;&quot; (volume&#x27;s root).
               },
             ],
@@ -1930,27 +2092,27 @@
             &quot;configMap&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Adapts a ConfigMap into a volume. The contents of the target ConfigMap&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
               &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the config.
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
             },
-            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Volume&#x27;s name.
-            &quot;secret&quot;: { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: not supported Cloud Run for Anthos: supported
+            &quot;name&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported Volume&#x27;s name.
+            &quot;secret&quot;: { # Cloud Run fully managed: supported The secret&#x27;s value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. Cloud Run for Anthos: supported The contents of the target Secret&#x27;s Data field will be presented in a volume as files using the keys in the Data field as the file names. # Cloud Run fully managed: supported Cloud Run for Anthos: supported
               &quot;defaultMode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on created files by default. Must be a value between 0000 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. NOTE: This is an integer representation of the mode bits. So, the integer value should look exactly as the chmod numeric notation, i.e. Unix chmod &quot;777&quot; (a=rwx) should have the integer value 777.
-              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
-                { # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
-                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The key to project.
+              &quot;items&quot;: [ # (Optional) Cloud Run fully managed: supported If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. Cloud Run for Anthos: supported If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional.
+                { # Cloud Run fully managed: supported Cloud Run for Anthos: supported Maps a string key to a path within a volume.
+                  &quot;key&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The Cloud Secret Manager secret version. Can be &#x27;latest&#x27; for the latest value or an integer for a specific version. Cloud Run for Anthos: supported The key to project.
                   &quot;mode&quot;: 42, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Mode bits to use on this file, must be a value between 0000 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.
-                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
+                  &quot;path&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported Cloud Run for Anthos: supported The relative path of the file to map the key to. May not be an absolute path. May not contain the path element &#x27;..&#x27;. May not start with the string &#x27;..&#x27;.
                 },
               ],
               &quot;optional&quot;: True or False, # (Optional) Cloud Run fully managed: not supported Cloud Run for Anthos: supported Specify whether the Secret or its keys must be defined.
-              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: not supported Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
+              &quot;secretName&quot;: &quot;A String&quot;, # Cloud Run fully managed: supported The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project. If the secret is in another project, you must define an alias. An alias definition has the form: :projects//secrets/. If multiple alias definitions are needed, they must be separated by commas. The alias definitions must be set on the run.googleapis.com/secrets annotation. Cloud Run for Anthos: supported Name of the secret in the container&#x27;s namespace to use.
             },
           },
         ],
diff --git a/docs/dyn/run_v1alpha1.html b/docs/dyn/run_v1alpha1.html
index ab3df78..4d62948 100644
--- a/docs/dyn/run_v1alpha1.html
+++ b/docs/dyn/run_v1alpha1.html
@@ -80,11 +80,6 @@
 <p class="firstline">Returns the namespaces Resource.</p>
 
 <p class="toc_element">
-  <code><a href="run_v1alpha1.projects.html">projects()</a></code>
-</p>
-<p class="firstline">Returns the projects Resource.</p>
-
-<p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
diff --git a/docs/dyn/run_v1alpha1.namespaces.html b/docs/dyn/run_v1alpha1.namespaces.html
index b14ae96..129bf18 100644
--- a/docs/dyn/run_v1alpha1.namespaces.html
+++ b/docs/dyn/run_v1alpha1.namespaces.html
@@ -75,41 +75,11 @@
 <h1><a href="run_v1alpha1.html">Cloud Run Admin API</a> . <a href="run_v1alpha1.namespaces.html">namespaces</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="run_v1alpha1.namespaces.authorizeddomains.html">authorizeddomains()</a></code>
-</p>
-<p class="firstline">Returns the authorizeddomains Resource.</p>
-
-<p class="toc_element">
-  <code><a href="run_v1alpha1.namespaces.configurations.html">configurations()</a></code>
-</p>
-<p class="firstline">Returns the configurations Resource.</p>
-
-<p class="toc_element">
-  <code><a href="run_v1alpha1.namespaces.domainmappings.html">domainmappings()</a></code>
-</p>
-<p class="firstline">Returns the domainmappings Resource.</p>
-
-<p class="toc_element">
   <code><a href="run_v1alpha1.namespaces.jobs.html">jobs()</a></code>
 </p>
 <p class="firstline">Returns the jobs Resource.</p>
 
 <p class="toc_element">
-  <code><a href="run_v1alpha1.namespaces.revisions.html">revisions()</a></code>
-</p>
-<p class="firstline">Returns the revisions Resource.</p>
-
-<p class="toc_element">
-  <code><a href="run_v1alpha1.namespaces.routes.html">routes()</a></code>
-</p>
-<p class="firstline">Returns the routes Resource.</p>
-
-<p class="toc_element">
-  <code><a href="run_v1alpha1.namespaces.services.html">services()</a></code>
-</p>
-<p class="firstline">Returns the services Resource.</p>
-
-<p class="toc_element">
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/secretmanager_v1.projects.locations.html b/docs/dyn/secretmanager_v1.projects.locations.html
index d216931..6e000ef 100644
--- a/docs/dyn/secretmanager_v1.projects.locations.html
+++ b/docs/dyn/secretmanager_v1.projects.locations.html
@@ -126,7 +126,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/secretmanager_v1beta1.projects.locations.html b/docs/dyn/secretmanager_v1beta1.projects.locations.html
index 0582321..927e1b1 100644
--- a/docs/dyn/secretmanager_v1beta1.projects.locations.html
+++ b/docs/dyn/secretmanager_v1beta1.projects.locations.html
@@ -126,7 +126,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/securitycenter_v1.folders.assets.html b/docs/dyn/securitycenter_v1.folders.assets.html
index af81ddd..45068d8 100644
--- a/docs/dyn/securitycenter_v1.folders.assets.html
+++ b/docs/dyn/securitycenter_v1.folders.assets.html
@@ -178,6 +178,7 @@
   &quot;listAssetsResults&quot;: [ # Assets matching the list request.
     { # Result containing the Asset and its State.
       &quot;asset&quot;: { # Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don&#x27;t affect the referenced Google Cloud resource. # Asset matching the search request.
+        &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the resource. It&#x27;s either &quot;organizations/{organization_id}/assets/{asset_id}&quot;, &quot;folders/{folder_id}/assets/{asset_id}&quot; or &quot;projects/{project_number}/assets/{asset_id}&quot;, depending on the closest CRM ancestor of the resource.
         &quot;createTime&quot;: &quot;A String&quot;, # The time at which the asset was created in Security Command Center.
         &quot;iamPolicy&quot;: { # Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user. # Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user.
           &quot;policyBlob&quot;: &quot;A String&quot;, # The JSON representation of the Policy associated with the asset. See https://cloud.google.com/iam/reference/rest/v1/Policy for format details.
@@ -205,6 +206,7 @@
           &quot;resourceType&quot;: &quot;A String&quot;, # The type of the Google Cloud resource. Examples include: APPLICATION, PROJECT, and ORGANIZATION. This is a case insensitive field defined by Security Command Center and/or the producer of the resource and is immutable after create time.
         },
         &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the asset.
+          &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
           &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
             &quot;a_key&quot;: &quot;A String&quot;,
           },
@@ -245,6 +247,7 @@
     The object takes the form of:
 
 { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
@@ -262,6 +265,7 @@
   An object of the form:
 
     { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
diff --git a/docs/dyn/securitycenter_v1.folders.sources.findings.html b/docs/dyn/securitycenter_v1.folders.sources.findings.html
index 7502009..c307240 100644
--- a/docs/dyn/securitycenter_v1.folders.sources.findings.html
+++ b/docs/dyn/securitycenter_v1.folders.sources.findings.html
@@ -184,14 +184,16 @@
   &quot;listFindingsResults&quot;: [ # Findings matching the list request.
     { # Result containing the Finding and its StateChange.
       &quot;finding&quot;: { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding. # Finding matching the search request.
+        &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
         &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
         &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-        &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+        &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
         &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
         &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
         &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
         &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
         &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+          &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
           &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
             &quot;a_key&quot;: &quot;A String&quot;,
           },
@@ -249,14 +251,16 @@
     The object takes the form of:
 
 { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -279,14 +283,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -323,14 +329,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -354,6 +362,7 @@
     The object takes the form of:
 
 { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
@@ -371,6 +380,7 @@
   An object of the form:
 
     { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
diff --git a/docs/dyn/securitycenter_v1.folders.sources.html b/docs/dyn/securitycenter_v1.folders.sources.html
index 219267a..1fbc365 100644
--- a/docs/dyn/securitycenter_v1.folders.sources.html
+++ b/docs/dyn/securitycenter_v1.folders.sources.html
@@ -114,6 +114,7 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results.
   &quot;sources&quot;: [ # Sources belonging to the requested parent.
     { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+      &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
       &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
       &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
       &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
diff --git a/docs/dyn/securitycenter_v1.organizations.assets.html b/docs/dyn/securitycenter_v1.organizations.assets.html
index 5ee8eb3..8170788 100644
--- a/docs/dyn/securitycenter_v1.organizations.assets.html
+++ b/docs/dyn/securitycenter_v1.organizations.assets.html
@@ -181,6 +181,7 @@
   &quot;listAssetsResults&quot;: [ # Assets matching the list request.
     { # Result containing the Asset and its State.
       &quot;asset&quot;: { # Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don&#x27;t affect the referenced Google Cloud resource. # Asset matching the search request.
+        &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the resource. It&#x27;s either &quot;organizations/{organization_id}/assets/{asset_id}&quot;, &quot;folders/{folder_id}/assets/{asset_id}&quot; or &quot;projects/{project_number}/assets/{asset_id}&quot;, depending on the closest CRM ancestor of the resource.
         &quot;createTime&quot;: &quot;A String&quot;, # The time at which the asset was created in Security Command Center.
         &quot;iamPolicy&quot;: { # Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user. # Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user.
           &quot;policyBlob&quot;: &quot;A String&quot;, # The JSON representation of the Policy associated with the asset. See https://cloud.google.com/iam/reference/rest/v1/Policy for format details.
@@ -208,6 +209,7 @@
           &quot;resourceType&quot;: &quot;A String&quot;, # The type of the Google Cloud resource. Examples include: APPLICATION, PROJECT, and ORGANIZATION. This is a case insensitive field defined by Security Command Center and/or the producer of the resource and is immutable after create time.
         },
         &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the asset.
+          &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
           &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
             &quot;a_key&quot;: &quot;A String&quot;,
           },
@@ -289,6 +291,7 @@
     The object takes the form of:
 
 { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
@@ -306,6 +309,7 @@
   An object of the form:
 
     { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
diff --git a/docs/dyn/securitycenter_v1.organizations.sources.findings.html b/docs/dyn/securitycenter_v1.organizations.sources.findings.html
index 93422a7..fcc11c4 100644
--- a/docs/dyn/securitycenter_v1.organizations.sources.findings.html
+++ b/docs/dyn/securitycenter_v1.organizations.sources.findings.html
@@ -117,14 +117,16 @@
     The object takes the form of:
 
 { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -147,14 +149,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -248,14 +252,16 @@
   &quot;listFindingsResults&quot;: [ # Findings matching the list request.
     { # Result containing the Finding and its StateChange.
       &quot;finding&quot;: { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding. # Finding matching the search request.
+        &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
         &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
         &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-        &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+        &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
         &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
         &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
         &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
         &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
         &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+          &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
           &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
             &quot;a_key&quot;: &quot;A String&quot;,
           },
@@ -313,14 +319,16 @@
     The object takes the form of:
 
 { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -343,14 +351,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -387,14 +397,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -418,6 +430,7 @@
     The object takes the form of:
 
 { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
@@ -435,6 +448,7 @@
   An object of the form:
 
     { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
diff --git a/docs/dyn/securitycenter_v1.organizations.sources.html b/docs/dyn/securitycenter_v1.organizations.sources.html
index abcf9d1..690929e 100644
--- a/docs/dyn/securitycenter_v1.organizations.sources.html
+++ b/docs/dyn/securitycenter_v1.organizations.sources.html
@@ -122,6 +122,7 @@
     The object takes the form of:
 
 { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
   &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
@@ -136,6 +137,7 @@
   An object of the form:
 
     { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
   &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
@@ -157,6 +159,7 @@
   An object of the form:
 
     { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
   &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
@@ -239,6 +242,7 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results.
   &quot;sources&quot;: [ # Sources belonging to the requested parent.
     { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+      &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
       &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
       &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
       &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
@@ -271,6 +275,7 @@
     The object takes the form of:
 
 { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
   &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
@@ -286,6 +291,7 @@
   An object of the form:
 
     { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
   &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
diff --git a/docs/dyn/securitycenter_v1.projects.assets.html b/docs/dyn/securitycenter_v1.projects.assets.html
index d474e43..7c577e0 100644
--- a/docs/dyn/securitycenter_v1.projects.assets.html
+++ b/docs/dyn/securitycenter_v1.projects.assets.html
@@ -178,6 +178,7 @@
   &quot;listAssetsResults&quot;: [ # Assets matching the list request.
     { # Result containing the Asset and its State.
       &quot;asset&quot;: { # Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don&#x27;t affect the referenced Google Cloud resource. # Asset matching the search request.
+        &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the resource. It&#x27;s either &quot;organizations/{organization_id}/assets/{asset_id}&quot;, &quot;folders/{folder_id}/assets/{asset_id}&quot; or &quot;projects/{project_number}/assets/{asset_id}&quot;, depending on the closest CRM ancestor of the resource.
         &quot;createTime&quot;: &quot;A String&quot;, # The time at which the asset was created in Security Command Center.
         &quot;iamPolicy&quot;: { # Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user. # Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user.
           &quot;policyBlob&quot;: &quot;A String&quot;, # The JSON representation of the Policy associated with the asset. See https://cloud.google.com/iam/reference/rest/v1/Policy for format details.
@@ -205,6 +206,7 @@
           &quot;resourceType&quot;: &quot;A String&quot;, # The type of the Google Cloud resource. Examples include: APPLICATION, PROJECT, and ORGANIZATION. This is a case insensitive field defined by Security Command Center and/or the producer of the resource and is immutable after create time.
         },
         &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the asset.
+          &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
           &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
             &quot;a_key&quot;: &quot;A String&quot;,
           },
@@ -245,6 +247,7 @@
     The object takes the form of:
 
 { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
@@ -262,6 +265,7 @@
   An object of the form:
 
     { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
diff --git a/docs/dyn/securitycenter_v1.projects.sources.findings.html b/docs/dyn/securitycenter_v1.projects.sources.findings.html
index e5c77ab..f516223 100644
--- a/docs/dyn/securitycenter_v1.projects.sources.findings.html
+++ b/docs/dyn/securitycenter_v1.projects.sources.findings.html
@@ -184,14 +184,16 @@
   &quot;listFindingsResults&quot;: [ # Findings matching the list request.
     { # Result containing the Finding and its StateChange.
       &quot;finding&quot;: { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding. # Finding matching the search request.
+        &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
         &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
         &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-        &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+        &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
         &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
         &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
         &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
         &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
         &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+          &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
           &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
             &quot;a_key&quot;: &quot;A String&quot;,
           },
@@ -249,14 +251,16 @@
     The object takes the form of:
 
 { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -279,14 +283,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -323,14 +329,16 @@
   An object of the form:
 
     { # Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}&quot; or &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
   &quot;category&quot;: &quot;A String&quot;, # The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: &quot;XSS_FLASH_INJECTION&quot;
   &quot;createTime&quot;: &quot;A String&quot;, # The time at which the finding was created in Security Command Center.
-  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved.
+  &quot;eventTime&quot;: &quot;A String&quot;, # The time at which the event took place, or when an update to the finding occurred. For example, if the finding represents an open firewall it would capture the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding were to be resolved afterward, this time would reflect when the finding was resolved. Must not be set to a value greater than the current timestamp.
   &quot;externalUri&quot;: &quot;A String&quot;, # The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.
   &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}&quot;
   &quot;parent&quot;: &quot;A String&quot;, # The relative resource name of the source the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. For example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
   &quot;resourceName&quot;: &quot;A String&quot;, # For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string. This field is immutable after creation time.
   &quot;securityMarks&quot;: { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization. # Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.
+    &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
     &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -354,6 +362,7 @@
     The object takes the form of:
 
 { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
@@ -371,6 +380,7 @@
   An object of the form:
 
     { # User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.
+  &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the marks. Examples: &quot;organizations/{organization_id}/assets/{asset_id}/securityMarks&quot; &quot;folders/{folder_id}/assets/{asset_id}/securityMarks&quot; &quot;projects/{project_number}/assets/{asset_id}/securityMarks&quot; &quot;organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks&quot; &quot;projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks&quot;
   &quot;marks&quot;: { # Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)
     &quot;a_key&quot;: &quot;A String&quot;,
   },
diff --git a/docs/dyn/securitycenter_v1.projects.sources.html b/docs/dyn/securitycenter_v1.projects.sources.html
index cba128b..13ef297 100644
--- a/docs/dyn/securitycenter_v1.projects.sources.html
+++ b/docs/dyn/securitycenter_v1.projects.sources.html
@@ -114,6 +114,7 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results.
   &quot;sources&quot;: [ # Sources belonging to the requested parent.
     { # Security Command Center finding source. A finding source is an entity or a mechanism that can produce a finding. A source is like a container of findings that come from the same scanner, logger, monitor, and other tools.
+      &quot;canonicalName&quot;: &quot;A String&quot;, # The canonical name of the finding. It&#x27;s either &quot;organizations/{organization_id}/sources/{source_id}&quot;, &quot;folders/{folder_id}/sources/{source_id}&quot; or &quot;projects/{project_number}/sources/{source_id}&quot;, depending on the closest CRM ancestor of the resource associated with the finding.
       &quot;description&quot;: &quot;A String&quot;, # The description of the source (max of 1024 characters). Example: &quot;Web Security Scanner is a web security scanner for common vulnerabilities in App Engine applications. It can automatically scan and detect four common vulnerabilities, including cross-site-scripting (XSS), Flash injection, mixed content (HTTP in HTTPS), and outdated or insecure libraries.&quot;
       &quot;displayName&quot;: &quot;A String&quot;, # The source&#x27;s display name. A source&#x27;s display name must be unique amongst its siblings, for example, two sources with the same parent can&#x27;t share the same display name. The display name must have a length between 1 and 64 characters (inclusive).
       &quot;name&quot;: &quot;A String&quot;, # The relative resource name of this source. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: &quot;organizations/{organization_id}/sources/{source_id}&quot;
diff --git a/docs/dyn/servicecontrol_v2.services.html b/docs/dyn/servicecontrol_v2.services.html
index f212653..566ebee 100644
--- a/docs/dyn/servicecontrol_v2.services.html
+++ b/docs/dyn/servicecontrol_v2.services.html
@@ -144,7 +144,7 @@
       &quot;host&quot;: &quot;A String&quot;, # The HTTP request `Host` header value.
       &quot;id&quot;: &quot;A String&quot;, # The unique ID for a request, which can be propagated to downstream systems. The ID should have low probability of collision within a single day for a specific service.
       &quot;method&quot;: &quot;A String&quot;, # The HTTP request method, such as `GET`, `POST`.
-      &quot;path&quot;: &quot;A String&quot;, # The HTTP URL path.
+      &quot;path&quot;: &quot;A String&quot;, # The HTTP URL path, excluding the query parameters.
       &quot;protocol&quot;: &quot;A String&quot;, # The network protocol used with the request, such as &quot;http/1.1&quot;, &quot;spdy/3&quot;, &quot;h2&quot;, &quot;h2c&quot;, &quot;webrtc&quot;, &quot;tcp&quot;, &quot;udp&quot;, &quot;quic&quot;. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for details.
       &quot;query&quot;: &quot;A String&quot;, # The HTTP URL query in the format of `name1=value1&amp;name2=value2`, as it appears in the first line of the HTTP request. No decoding is performed.
       &quot;reason&quot;: &quot;A String&quot;, # A special parameter for request reason. It is used by security systems to associate auditing information with a request.
@@ -171,7 +171,7 @@
       &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
     },
     &quot;response&quot;: { # This message defines attributes for a typical network response. It generally models semantics of an HTTP response. # Represents a network response, such as an HTTP response.
-      &quot;backendLatency&quot;: &quot;A String&quot;, # The length of time it takes the backend service to fully respond to a request. Measured from when the destination service starts to send the request to the backend until when the destination service receives the complete response from the backend.
+      &quot;backendLatency&quot;: &quot;A String&quot;, # The amount of time it takes the backend service to fully respond to a request. Measured from when the destination service starts to send the request to the backend until when the destination service receives the complete response from the backend.
       &quot;code&quot;: &quot;A String&quot;, # The HTTP response status code, such as `200` and `404`.
       &quot;headers&quot;: { # The HTTP response headers. If multiple headers share the same key, they must be merged according to HTTP spec. All header keys must be lowercased, because HTTP header keys are case-insensitive.
         &quot;a_key&quot;: &quot;A String&quot;,
@@ -212,7 +212,7 @@
   &quot;headers&quot;: { # Returns a set of request contexts generated from the `CheckRequest`.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # An &#x27;OK&#x27; status allows the operation. Any other status indicates a denial; [google.rpc.Status.details]() would contain additional details about the denial.
+  &quot;status&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Operation is allowed when this field is not set. Any non-&#x27;OK&#x27; status indicates a denial; [google.rpc.Status.details]() would contain additional details about the denial.
     &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
     &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
       {
@@ -290,7 +290,7 @@
         &quot;host&quot;: &quot;A String&quot;, # The HTTP request `Host` header value.
         &quot;id&quot;: &quot;A String&quot;, # The unique ID for a request, which can be propagated to downstream systems. The ID should have low probability of collision within a single day for a specific service.
         &quot;method&quot;: &quot;A String&quot;, # The HTTP request method, such as `GET`, `POST`.
-        &quot;path&quot;: &quot;A String&quot;, # The HTTP URL path.
+        &quot;path&quot;: &quot;A String&quot;, # The HTTP URL path, excluding the query parameters.
         &quot;protocol&quot;: &quot;A String&quot;, # The network protocol used with the request, such as &quot;http/1.1&quot;, &quot;spdy/3&quot;, &quot;h2&quot;, &quot;h2c&quot;, &quot;webrtc&quot;, &quot;tcp&quot;, &quot;udp&quot;, &quot;quic&quot;. See https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for details.
         &quot;query&quot;: &quot;A String&quot;, # The HTTP URL query in the format of `name1=value1&amp;name2=value2`, as it appears in the first line of the HTTP request. No decoding is performed.
         &quot;reason&quot;: &quot;A String&quot;, # A special parameter for request reason. It is used by security systems to associate auditing information with a request.
@@ -317,7 +317,7 @@
         &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was last updated. Any change to the resource made by users must refresh this value. Changes to a resource made by the service should refresh this value.
       },
       &quot;response&quot;: { # This message defines attributes for a typical network response. It generally models semantics of an HTTP response. # Represents a network response, such as an HTTP response.
-        &quot;backendLatency&quot;: &quot;A String&quot;, # The length of time it takes the backend service to fully respond to a request. Measured from when the destination service starts to send the request to the backend until when the destination service receives the complete response from the backend.
+        &quot;backendLatency&quot;: &quot;A String&quot;, # The amount of time it takes the backend service to fully respond to a request. Measured from when the destination service starts to send the request to the backend until when the destination service receives the complete response from the backend.
         &quot;code&quot;: &quot;A String&quot;, # The HTTP response status code, such as `200` and `404`.
         &quot;headers&quot;: { # The HTTP response headers. If multiple headers share the same key, they must be merged according to HTTP spec. All header keys must be lowercased, because HTTP header keys are case-insensitive.
           &quot;a_key&quot;: &quot;A String&quot;,
diff --git a/docs/dyn/servicedirectory_v1.projects.locations.html b/docs/dyn/servicedirectory_v1.projects.locations.html
index 781f484..318f2ca 100644
--- a/docs/dyn/servicedirectory_v1.projects.locations.html
+++ b/docs/dyn/servicedirectory_v1.projects.locations.html
@@ -131,7 +131,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/servicedirectory_v1beta1.projects.locations.html b/docs/dyn/servicedirectory_v1beta1.projects.locations.html
index 87f272c..01c1020 100644
--- a/docs/dyn/servicedirectory_v1beta1.projects.locations.html
+++ b/docs/dyn/servicedirectory_v1beta1.projects.locations.html
@@ -131,7 +131,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/servicemanagement_v1.services.configs.html b/docs/dyn/servicemanagement_v1.services.configs.html
index 35f7a09..1a4ae4a 100644
--- a/docs/dyn/servicemanagement_v1.services.configs.html
+++ b/docs/dyn/servicemanagement_v1.services.configs.html
@@ -208,7 +208,7 @@
       },
     ],
   },
-  &quot;configVersion&quot;: 42, # Deprecated. The service config compiler always sets this field to `3`.
+  &quot;configVersion&quot;: 42, # Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.
   &quot;context&quot;: { # `Context` defines which contexts an API requests. Example: context: rules: - selector: &quot;*&quot; requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here. # Context configuration.
     &quot;rules&quot;: [ # A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
       { # A context rule provides information about the context for an individual API element.
@@ -266,9 +266,6 @@
   },
   &quot;endpoints&quot;: [ # Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.
     { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-      &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-        &quot;A String&quot;,
-      ],
       &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
       &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
       &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
@@ -677,7 +674,7 @@
       },
     ],
   },
-  &quot;configVersion&quot;: 42, # Deprecated. The service config compiler always sets this field to `3`.
+  &quot;configVersion&quot;: 42, # Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.
   &quot;context&quot;: { # `Context` defines which contexts an API requests. Example: context: rules: - selector: &quot;*&quot; requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here. # Context configuration.
     &quot;rules&quot;: [ # A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
       { # A context rule provides information about the context for an individual API element.
@@ -735,9 +732,6 @@
   },
   &quot;endpoints&quot;: [ # Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.
     { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-      &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-        &quot;A String&quot;,
-      ],
       &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
       &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
       &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
@@ -1158,7 +1152,7 @@
       },
     ],
   },
-  &quot;configVersion&quot;: 42, # Deprecated. The service config compiler always sets this field to `3`.
+  &quot;configVersion&quot;: 42, # Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.
   &quot;context&quot;: { # `Context` defines which contexts an API requests. Example: context: rules: - selector: &quot;*&quot; requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here. # Context configuration.
     &quot;rules&quot;: [ # A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
       { # A context rule provides information about the context for an individual API element.
@@ -1216,9 +1210,6 @@
   },
   &quot;endpoints&quot;: [ # Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.
     { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-      &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-        &quot;A String&quot;,
-      ],
       &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
       &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
       &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
@@ -1639,7 +1630,7 @@
           },
         ],
       },
-      &quot;configVersion&quot;: 42, # Deprecated. The service config compiler always sets this field to `3`.
+      &quot;configVersion&quot;: 42, # Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.
       &quot;context&quot;: { # `Context` defines which contexts an API requests. Example: context: rules: - selector: &quot;*&quot; requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here. # Context configuration.
         &quot;rules&quot;: [ # A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
           { # A context rule provides information about the context for an individual API element.
@@ -1697,9 +1688,6 @@
       },
       &quot;endpoints&quot;: [ # Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.
         { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-          &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-            &quot;A String&quot;,
-          ],
           &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
           &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
           &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index c5f0954..f014997 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -403,7 +403,7 @@
       },
     ],
   },
-  &quot;configVersion&quot;: 42, # Deprecated. The service config compiler always sets this field to `3`.
+  &quot;configVersion&quot;: 42, # Obsolete. Do not use. This field has no semantic meaning. The service config compiler always sets this field to `3`.
   &quot;context&quot;: { # `Context` defines which contexts an API requests. Example: context: rules: - selector: &quot;*&quot; requested: - google.rpc.context.ProjectContext - google.rpc.context.OriginContext The above specifies that all methods in the API request `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`. Available context types are defined in package `google.rpc.context`. This also provides mechanism to allowlist any protobuf message extension that can be sent in grpc metadata using “x-goog-ext--bin” and “x-goog-ext--jspb” format. For example, list any service specific protobuf types that can appear in grpc metadata as follows in your yaml file: Example: context: rules: - selector: &quot;google.example.library.v1.LibraryService.CreateBook&quot; allowed_request_extensions: - google.foo.v1.NewExtension allowed_response_extensions: - google.foo.v1.NewExtension You can also specify extension ID instead of fully qualified extension name here. # Context configuration.
     &quot;rules&quot;: [ # A list of RPC context rules that apply to individual API methods. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
       { # A context rule provides information about the context for an individual API element.
@@ -461,9 +461,6 @@
   },
   &quot;endpoints&quot;: [ # Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.
     { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-      &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-        &quot;A String&quot;,
-      ],
       &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
       &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
       &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
diff --git a/docs/dyn/servicenetworking_v1.services.connections.html b/docs/dyn/servicenetworking_v1.services.connections.html
index 4f8342f..ccd9fbf 100644
--- a/docs/dyn/servicenetworking_v1.services.connections.html
+++ b/docs/dyn/servicenetworking_v1.services.connections.html
@@ -81,6 +81,9 @@
   <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a private connection that establishes a VPC Network Peering connection to a VPC network in the service producer's organization. The administrator of the service consumer's VPC network invokes this method. The administrator must assign one or more allocated IP ranges for provisioning subnetworks in the service producer's VPC network. This connection is used for all supported services in the service producer's organization, so it only needs to be invoked once.</p>
 <p class="toc_element">
+  <code><a href="#deleteConnection">deleteConnection(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a private service access connection.</p>
+<p class="toc_element">
   <code><a href="#list">list(parent, network=None, x__xgafv=None)</a></code></p>
 <p class="firstline">List the private connections that are configured in a service consumer's VPC network.</p>
 <p class="toc_element">
@@ -140,6 +143,48 @@
 </div>
 
 <div class="method">
+    <code class="details" id="deleteConnection">deleteConnection(name, body=None, x__xgafv=None)</code>
+  <pre>Deletes a private service access connection.
+
+Args:
+  name: string, Required. The private service connection that connects to a service producer organization. The name includes both the private service name and the VPC network peering name in the format of `services/{peering_service_name}/connections/{vpc_peering_name}`. For Google services that support this functionality, this is `services/servicenetworking.googleapis.com/connections/servicenetworking-googleapis-com`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request to delete a private service access connection. The call will fail if there are any managed service instances using this connection.
+  &quot;consumerNetwork&quot;: &quot;A String&quot;, # Required. The network that the consumer is using to connect with services. Must be in the form of projects/{project}/global/networks/{network} {project} is a project number, as in &#x27;12345&#x27; {network} is a network name.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
     <code class="details" id="list">list(parent, network=None, x__xgafv=None)</code>
   <pre>List the private connections that are configured in a service consumer&#x27;s VPC network.
 
diff --git a/docs/dyn/serviceusage_v1.services.html b/docs/dyn/serviceusage_v1.services.html
index d99012c..4fd9e46 100644
--- a/docs/dyn/serviceusage_v1.services.html
+++ b/docs/dyn/serviceusage_v1.services.html
@@ -261,9 +261,6 @@
         },
         &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
           { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-            &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-              &quot;A String&quot;,
-            ],
             &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
             &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
             &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
@@ -557,9 +554,6 @@
     },
     &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
       { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-        &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-          &quot;A String&quot;,
-        ],
         &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
         &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
         &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
@@ -768,9 +762,6 @@
         },
         &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
           { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-            &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-              &quot;A String&quot;,
-            ],
             &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
             &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
             &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
diff --git a/docs/dyn/serviceusage_v1beta1.services.html b/docs/dyn/serviceusage_v1beta1.services.html
index 56e9136..023e1b8 100644
--- a/docs/dyn/serviceusage_v1beta1.services.html
+++ b/docs/dyn/serviceusage_v1beta1.services.html
@@ -385,9 +385,6 @@
     },
     &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
       { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-        &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-          &quot;A String&quot;,
-        ],
         &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
         &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
         &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
@@ -596,9 +593,6 @@
         },
         &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
           { # `Endpoint` describes a network endpoint of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example service configuration: name: library-example.googleapis.com endpoints: # Below entry makes &#x27;google.example.library.v1.Library&#x27; # API be served from endpoint address library-example.googleapis.com. # It also allows HTTP OPTIONS calls to be passed to the backend, for # it to decide whether the subsequent cross-origin request is # allowed to proceed. - name: library-example.googleapis.com allow_cors: true
-            &quot;aliases&quot;: [ # DEPRECATED: This field is no longer supported. Instead of using aliases, please specify multiple google.api.Endpoint for each of the intended aliases. Additional names that this endpoint will be hosted on.
-              &quot;A String&quot;,
-            ],
             &quot;allowCors&quot;: True or False, # Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.
             &quot;name&quot;: &quot;A String&quot;, # The canonical name of this endpoint.
             &quot;target&quot;: &quot;A String&quot;, # The specification of an Internet routable address of API frontend that will handle requests to this [API Endpoint](https://cloud.google.com/apis/design/glossary). It should be either a valid IPv4 address or a fully-qualified domain name. For example, &quot;8.8.8.8&quot; or &quot;myservice.appspot.com&quot;.
diff --git a/docs/dyn/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index 38563a5..072dd5f 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -329,6 +329,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -448,6 +451,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -567,6 +573,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -666,6 +675,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -1278,6 +1290,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -1337,6 +1352,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -1404,6 +1422,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -1431,6 +1452,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -1648,6 +1672,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -1774,6 +1801,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -1886,6 +1916,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -2035,6 +2068,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -2521,6 +2557,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -2791,6 +2830,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -3073,6 +3115,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -3206,6 +3251,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -3799,6 +3847,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -4081,6 +4132,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -4214,6 +4268,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -5022,6 +5079,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -5304,6 +5364,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -5437,6 +5500,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -5509,6 +5575,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -5628,6 +5697,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -5747,6 +5819,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -5846,6 +5921,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -6458,6 +6536,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -6517,6 +6598,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -6584,6 +6668,9 @@
               &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
             },
             &quot;italic&quot;: True or False, # True if the text is italicized.
+            &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+              &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+            },
             &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
             &quot;underline&quot;: True or False, # True if the text is underlined.
           },
@@ -6611,6 +6698,9 @@
               &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
             },
             &quot;italic&quot;: True or False, # True if the text is italicized.
+            &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+              &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+            },
             &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
             &quot;underline&quot;: True or False, # True if the text is underlined.
           },
@@ -6828,6 +6918,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -6954,6 +7047,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -7066,6 +7162,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -7215,6 +7314,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -7832,6 +7934,9 @@
               &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
             },
             &quot;italic&quot;: True or False, # True if the text is italicized.
+            &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+              &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+            },
             &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
             &quot;underline&quot;: True or False, # True if the text is underlined.
           },
@@ -7969,6 +8074,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -8235,6 +8343,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -8354,6 +8465,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -8473,6 +8587,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -8572,6 +8689,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -9184,6 +9304,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -9243,6 +9366,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -9310,6 +9436,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -9337,6 +9466,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -9554,6 +9686,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -9680,6 +9815,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -9792,6 +9930,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -10218,6 +10359,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -10383,6 +10527,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -10885,6 +11032,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -11104,6 +11254,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -11514,6 +11667,9 @@
             &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
           },
           &quot;italic&quot;: True or False, # True if the text is italicized.
+          &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+            &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+          },
           &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
           &quot;underline&quot;: True or False, # True if the text is underlined.
         },
@@ -11908,6 +12064,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -12027,6 +12186,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -12146,6 +12308,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -12245,6 +12410,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -12857,6 +13025,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -12916,6 +13087,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -12983,6 +13157,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -13010,6 +13187,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -13227,6 +13407,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -13353,6 +13536,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -13465,6 +13651,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -13625,6 +13814,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -13998,6 +14190,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -14280,6 +14475,9 @@
                             &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                           },
                           &quot;italic&quot;: True or False, # True if the text is italicized.
+                          &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                            &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                          },
                           &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                           &quot;underline&quot;: True or False, # True if the text is underlined.
                         },
@@ -14413,6 +14611,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -14852,6 +15053,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -15122,6 +15326,9 @@
           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
         },
         &quot;italic&quot;: True or False, # True if the text is italicized.
+        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+        },
         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
         &quot;underline&quot;: True or False, # True if the text is underlined.
       },
@@ -15516,6 +15723,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -15635,6 +15845,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -15754,6 +15967,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -15853,6 +16069,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -16465,6 +16684,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -16524,6 +16746,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -16591,6 +16816,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -16618,6 +16846,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -16835,6 +17066,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -16961,6 +17195,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -17073,6 +17310,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -17233,6 +17473,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -17606,6 +17849,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -17888,6 +18134,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -18021,6 +18270,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -18460,6 +18712,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -18723,6 +18978,9 @@
           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
         },
         &quot;italic&quot;: True or False, # True if the text is italicized.
+        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+        },
         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
         &quot;underline&quot;: True or False, # True if the text is underlined.
       },
@@ -19117,6 +19375,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -19236,6 +19497,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -19355,6 +19619,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -19454,6 +19721,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -20066,6 +20336,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -20125,6 +20398,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -20192,6 +20468,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -20219,6 +20498,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -20436,6 +20718,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -20562,6 +20847,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -20674,6 +20962,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -20834,6 +21125,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -21207,6 +21501,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -21489,6 +21786,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -21622,6 +21922,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -22061,6 +22364,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -22333,6 +22639,9 @@
           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
         },
         &quot;italic&quot;: True or False, # True if the text is italicized.
+        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+        },
         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
         &quot;underline&quot;: True or False, # True if the text is underlined.
       },
@@ -22727,6 +23036,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -22846,6 +23158,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -22965,6 +23280,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -23064,6 +23382,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -23676,6 +23997,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -23735,6 +24059,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -23802,6 +24129,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -23829,6 +24159,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -24046,6 +24379,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -24172,6 +24508,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -24284,6 +24623,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -24444,6 +24786,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -24817,6 +25162,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -25099,6 +25447,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -25232,6 +25583,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -25671,6 +26025,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -25979,6 +26336,9 @@
           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
         },
         &quot;italic&quot;: True or False, # True if the text is italicized.
+        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+        },
         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
         &quot;underline&quot;: True or False, # True if the text is underlined.
       },
@@ -26373,6 +26733,9 @@
                       &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                     },
                     &quot;italic&quot;: True or False, # True if the text is italicized.
+                    &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                      &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                    },
                     &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                     &quot;underline&quot;: True or False, # True if the text is underlined.
                   },
@@ -26492,6 +26855,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -26611,6 +26977,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -26710,6 +27079,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -27322,6 +27694,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -27381,6 +27756,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -27448,6 +27826,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -27475,6 +27856,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
@@ -27692,6 +28076,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -27818,6 +28205,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -27930,6 +28320,9 @@
                     &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                   },
                   &quot;italic&quot;: True or False, # True if the text is italicized.
+                  &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                    &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                  },
                   &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                   &quot;underline&quot;: True or False, # True if the text is underlined.
                 },
@@ -28090,6 +28483,9 @@
                   &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                 },
                 &quot;italic&quot;: True or False, # True if the text is italicized.
+                &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                  &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                },
                 &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                 &quot;underline&quot;: True or False, # True if the text is underlined.
               },
@@ -28463,6 +28859,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -28745,6 +29144,9 @@
                           &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                         },
                         &quot;italic&quot;: True or False, # True if the text is italicized.
+                        &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                          &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                        },
                         &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                         &quot;underline&quot;: True or False, # True if the text is underlined.
                       },
@@ -28878,6 +29280,9 @@
                         &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
                       },
                       &quot;italic&quot;: True or False, # True if the text is italicized.
+                      &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                        &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+                      },
                       &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
                       &quot;underline&quot;: True or False, # True if the text is underlined.
                     },
@@ -29317,6 +29722,9 @@
                 &quot;themeColor&quot;: &quot;A String&quot;, # Theme color.
               },
               &quot;italic&quot;: True or False, # True if the text is italicized.
+              &quot;link&quot;: { # An external or local reference. # The link destination of the text, if any. Setting a link in a format run will clear an existing cell-level link. When a link is set, the text foreground color will be set to the default link color 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.
+                &quot;uri&quot;: &quot;A String&quot;, # The link identifier.
+              },
               &quot;strikethrough&quot;: True or False, # True if the text has a strikethrough.
               &quot;underline&quot;: True or False, # True if the text is underlined.
             },
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
index e8040a0..2fe4fd5 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
@@ -195,6 +195,8 @@
   },
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request. Priority is ignored for this request. Setting the priority in this request_options struct will not do anything. To set the priority for a transaction, set it on the reads and writes that are part of this transaction instead.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
 }
 
@@ -304,6 +306,8 @@
   ],
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
   &quot;returnCommitStats&quot;: True or False, # If `true`, then statistics related to the transaction will be included in the CommitResponse. Default value is `false`.
   &quot;singleUseTransaction&quot;: { # # Transactions Each session can have at most one active transaction at a time (note that standalone reads and queries use a transaction internally and do count towards the one transaction limit). After the active transaction is completed, the session can immediately be re-used for the next transaction. It is not necessary to create a new session for each transaction. # Transaction Modes Cloud Spanner supports three transaction modes: 1. Locking read-write. This type of transaction is the only way to write data into Cloud Spanner. These transactions rely on pessimistic locking and, if necessary, two-phase commit. Locking read-write transactions may abort, requiring the application to retry. 2. Snapshot read-only. This transaction type provides guaranteed consistency across several reads, but does not allow writes. Snapshot read-only transactions can be configured to read at timestamps in the past. Snapshot read-only transactions do not need to be committed. 3. Partitioned DML. This type of transaction is used to execute a single Partitioned DML statement. Partitioned DML partitions the key space and runs the DML statement over each partition in parallel using separate, internal transactions that commit independently. Partitioned DML transactions do not need to be committed. For transactions that only read, snapshot read-only transactions provide simpler semantics and are almost always faster. In particular, read-only transactions do not take locks, so they do not conflict with read-write transactions. As a consequence of not taking locks, they also do not abort, so retry loops are not needed. Transactions may only read/write data in a single database. They may, however, read/write data in different tables within that database. ## Locking Read-Write Transactions Locking transactions may be used to atomically read-modify-write data anywhere in a database. This type of transaction is externally consistent. Clients should attempt to minimize the amount of time a transaction is active. Faster transactions commit with higher probability and cause less contention. Cloud Spanner attempts to keep read locks active as long as the transaction continues to do reads, and the transaction has not been terminated by Commit or Rollback. Long periods of inactivity at the client may cause Cloud Spanner to release a transaction&#x27;s locks and abort it. Conceptually, a read-write transaction consists of zero or more reads or SQL statements followed by Commit. At any time before Commit, the client can send a Rollback request to abort the transaction. ## Semantics Cloud Spanner can commit the transaction if all read locks it acquired are still valid at commit time, and it is able to acquire write locks for all writes. Cloud Spanner can abort the transaction for any reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees that the transaction has not modified any user data in Cloud Spanner. Unless the transaction commits, Cloud Spanner makes no guarantees about how long the transaction&#x27;s locks were held for. It is an error to use Cloud Spanner locks for any sort of mutual exclusion other than between Cloud Spanner transactions themselves. ## Retrying Aborted Transactions When a transaction aborts, the application can choose to retry the whole transaction again. To maximize the chances of successfully committing the retry, the client should execute the retry in the same session as the original attempt. The original session&#x27;s lock priority increases with each consecutive abort, meaning that each attempt has a slightly better chance of success than the previous. Under some circumstances (e.g., many transactions attempting to modify the same row(s)), a transaction can abort many times in a short period before successfully committing. Thus, it is not a good idea to cap the number of retries a transaction can attempt; instead, it is better to limit the total amount of wall time spent retrying. ## Idle Transactions A transaction is considered idle if it has no outstanding reads or SQL queries and has not started a read or SQL query within the last 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don&#x27;t hold on to locks indefinitely. In that case, the commit will fail with error `ABORTED`. If this behavior is undesirable, periodically executing a simple SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only transactions provides a simpler method than locking read-write transactions for doing several consistent reads. However, this type of transaction does not support writes. Snapshot transactions do not take locks. Instead, they work by choosing a Cloud Spanner timestamp, then executing all reads at that timestamp. Since they do not acquire locks, they do not block concurrent read-write transactions. Unlike locking read-write transactions, snapshot read-only transactions never abort. They can fail if the chosen read timestamp is garbage collected; however, the default garbage collection policy is generous enough that most applications do not need to worry about this in practice. Snapshot read-only transactions do not need to call Commit or Rollback (and in fact are not permitted to do so). To execute a snapshot transaction, the client specifies a timestamp bound, which tells Cloud Spanner how to choose a read timestamp. The types of timestamp bound are: - Strong (the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read is geographically distributed, stale read-only transactions can execute more quickly than strong or read-write transaction, because they are able to execute far from the leader replica. Each type of timestamp bound is discussed in detail below. ## Strong Strong reads are guaranteed to see the effects of all transactions that have committed before the start of the read. Furthermore, all rows yielded by a single read are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Strong reads are not repeatable: two consecutive strong read-only transactions might return inconsistent results if there are concurrent writes. If consistency across reads is required, the reads should be executed within a transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.strong. ## Exact Staleness These timestamp bounds execute reads at a user-specified timestamp. Reads at a timestamp are guaranteed to see a consistent prefix of the global transaction history: they observe modifications done by all transactions with a commit timestamp &lt;= the read timestamp, and observe none of the modifications done by transactions with a larger commit timestamp. They will block until all conflicting transactions that may be assigned commit timestamps &lt;= the read timestamp have finished. The timestamp can either be expressed as an absolute Cloud Spanner commit timestamp or a staleness relative to the current time. These modes do not require a &quot;negotiation phase&quot; to pick a timestamp. As a result, they execute slightly faster than the equivalent boundedly stale concurrency modes. On the other hand, boundedly stale reads usually return fresher results. See TransactionOptions.ReadOnly.read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded Staleness Bounded staleness modes allow Cloud Spanner to pick the read timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses the newest timestamp within the staleness bound that allows execution of the reads at the closest available replica without blocking. All rows yielded are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Boundedly stale reads are not repeatable: two stale reads, even if they use the same staleness bound, can execute at different timestamps and thus return inconsistent results. Boundedly stale reads execute in two phases: the first phase negotiates a timestamp among all replicas needed to serve the read. In the second phase, reads are executed at the negotiated timestamp. As a result of the two phase execution, bounded staleness reads are usually a little slower than comparable exact staleness reads. However, they are typically able to return fresher results, and are more likely to execute at the closest replica. Because the timestamp negotiation requires up-front knowledge of which rows will be read, it can only be used with single-use read-only transactions. See TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud Spanner continuously garbage collects deleted and overwritten data in the background to reclaim storage space. This process is known as &quot;version GC&quot;. By default, version GC reclaims versions after they are one hour old. Because of this, Cloud Spanner cannot perform reads at read timestamps more than one hour in the past. This restriction also applies to in-progress reads and/or SQL queries whose timestamp become too old while executing. Reads and SQL queries with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ## Partitioned DML Transactions Partitioned DML transactions are used to execute DML statements with a different execution strategy that provides different, and often better, scalability properties for large, table-wide operations than DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, should prefer using ReadWrite transactions. Partitioned DML partitions the keyspace and runs the DML statement on each partition in separate, internal transactions. These transactions commit automatically when complete, and run independently from one another. To reduce lock contention, this execution strategy only acquires read locks on rows that match the WHERE clause of the statement. Additionally, the smaller per-partition transactions hold locks for less time. That said, Partitioned DML is not a drop-in replacement for standard DML used in ReadWrite transactions. - The DML statement must be fully-partitionable. Specifically, the statement must be expressible as the union of many statements which each access only a single row of the table. - The statement is not applied atomically to all rows of the table. Rather, the statement is applied atomically to partitions of the table, in independent transactions. Secondary index rows are updated atomically with the base table rows. - Partitioned DML does not guarantee exactly-once execution semantics against a partition. The statement will be applied at least once to each partition. It is strongly recommended that the DML statement should be idempotent to avoid unexpected results. For instance, it is potentially dangerous to run a statement such as `UPDATE table SET column = column + 1` as it could be run multiple times against some rows. - The partitions are committed automatically - there is no support for Commit or Rollback. If the call returns an error, or if the client issuing the ExecuteSql call dies, it is possible that some rows had the statement executed on them successfully. It is also possible that statement was never executed against other rows. - Partitioned DML transactions may only contain the execution of a single DML statement via ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the execution of the partitioned DML operation (for instance, a UNIQUE INDEX violation, division by zero, or a value that cannot be stored due to schema constraints), then the operation is stopped at that point and an error is returned. It is possible that at this point, some partitions have been committed (or even committed multiple times), and other partitions have not been run at all. Given the above, Partitioned DML is good fit for large, database-wide, operations that are idempotent, such as deleting old rows from a very large table. # Execute mutations in a temporary transaction. Note that unlike commit of a previously-started transaction, commit with a temporary transaction is non-idempotent. That is, if the `CommitRequest` is sent to Cloud Spanner more than once (for instance, due to retries in the application, or in the transport library), it is possible that the mutations are executed more than once. If this is undesirable, use BeginTransaction and Commit instead.
@@ -407,6 +411,8 @@
 { # The request for ExecuteBatchDml.
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
   &quot;seqno&quot;: &quot;A String&quot;, # Required. A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one will succeed. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction may be aborted. Replays of previously handled requests will yield the same response as the first execution.
   &quot;statements&quot;: [ # Required. The list of statements to execute in this batch. Statements are executed serially, such that the effects of statement `i` are visible to statement `i+1`. Each statement must be a DML statement. Execution stops at the first failed statement; the remaining statements are not executed. Callers must provide at least one statement.
@@ -415,14 +421,7 @@
         &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
           &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
           &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-          &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-            &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
-              { # Message representing a single field of a struct.
-                &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-                &quot;type&quot;: # Object with schema name: Type # The type of the field.
-              },
-            ],
-          },
+          &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
         },
       },
       &quot;params&quot;: { # Parameter names and values that bind to placeholders in the DML string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -480,7 +479,11 @@
           &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
             { # Message representing a single field of a struct.
               &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-              &quot;type&quot;: # Object with schema name: Type # The type of the field.
+              &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
+                &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
+                &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
+                &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+              },
             },
           ],
         },
@@ -557,14 +560,7 @@
     &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
       &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
       &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-      &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-        &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
-          { # Message representing a single field of a struct.
-            &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-            &quot;type&quot;: # Object with schema name: Type # The type of the field.
-          },
-        ],
-      },
+      &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
     },
   },
   &quot;params&quot;: { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -578,6 +574,8 @@
   },
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
   &quot;resumeToken&quot;: &quot;A String&quot;, # If this request is resuming a previously interrupted SQL statement execution, `resume_token` should be copied from the last PartialResultSet yielded before the interruption. Doing this enables the new SQL statement execution to resume where the last one left off. The rest of the request parameters must exactly match the request that yielded this token.
   &quot;seqno&quot;: &quot;A String&quot;, # A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one will succeed. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction may be aborted. Replays of previously handled requests will yield the same response as the first execution. Required for DML statements. Ignored for queries.
@@ -629,7 +627,11 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
+            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
+            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
+            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+          },
         },
       ],
     },
@@ -695,14 +697,7 @@
     &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
       &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
       &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-      &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-        &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
-          { # Message representing a single field of a struct.
-            &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-            &quot;type&quot;: # Object with schema name: Type # The type of the field.
-          },
-        ],
-      },
+      &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
     },
   },
   &quot;params&quot;: { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -716,6 +711,8 @@
   },
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
   &quot;resumeToken&quot;: &quot;A String&quot;, # If this request is resuming a previously interrupted SQL statement execution, `resume_token` should be copied from the last PartialResultSet yielded before the interruption. Doing this enables the new SQL statement execution to resume where the last one left off. The rest of the request parameters must exactly match the request that yielded this token.
   &quot;seqno&quot;: &quot;A String&quot;, # A per-transaction sequence number used to identify this request. This field makes each request idempotent such that if the request is received multiple times, at most one will succeed. The sequence number must be monotonically increasing within the transaction. If a request arrives for the first time with an out-of-order sequence number, the transaction may be aborted. Replays of previously handled requests will yield the same response as the first execution. Required for DML statements. Ignored for queries.
@@ -768,7 +765,11 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
+            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
+            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
+            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+          },
         },
       ],
     },
@@ -903,14 +904,7 @@
     &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
       &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
       &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-      &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-        &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
-          { # Message representing a single field of a struct.
-            &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-            &quot;type&quot;: # Object with schema name: Type # The type of the field.
-          },
-        ],
-      },
+      &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
     },
   },
   &quot;params&quot;: { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -1114,6 +1108,8 @@
   &quot;partitionToken&quot;: &quot;A String&quot;, # If present, results will be restricted to the specified partition previously created using PartitionRead(). There must be an exact match for the values of fields common to this message and the PartitionReadRequest message used to create this partition_token.
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
   &quot;resumeToken&quot;: &quot;A String&quot;, # If this request is resuming a previously interrupted read, `resume_token` should be copied from the last PartialResultSet yielded before the interruption. Doing this enables the new read to resume where the last read left off. The rest of the request parameters must exactly match the request that yielded this token.
   &quot;table&quot;: &quot;A String&quot;, # Required. The name of the table in the database to be read.
@@ -1164,7 +1160,11 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
+            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
+            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
+            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+          },
         },
       ],
     },
@@ -1283,6 +1283,8 @@
   &quot;partitionToken&quot;: &quot;A String&quot;, # If present, results will be restricted to the specified partition previously created using PartitionRead(). There must be an exact match for the values of fields common to this message and the PartitionReadRequest message used to create this partition_token.
   &quot;requestOptions&quot;: { # Common request options for various APIs. # Common options for this request.
     &quot;priority&quot;: &quot;A String&quot;, # Priority for the request.
+    &quot;requestTag&quot;: &quot;A String&quot;, # A per-request tag which can be applied to queries or reads, used for statistics collection. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. This field is ignored for requests where it&#x27;s not applicable (e.g. CommitRequest). `request_tag` must be a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
+    &quot;transactionTag&quot;: &quot;A String&quot;, # A tag used for statistics collection about this transaction. Both request_tag and transaction_tag can be specified for a read or query that belongs to a transaction. The value of transaction_tag should be the same for all requests belonging to the same transaction. If this request doesn’t belong to any transaction, transaction_tag will be ignored. `transaction_tag` must be a valid identifier of the format: `a-zA-Z{0,49}`
   },
   &quot;resumeToken&quot;: &quot;A String&quot;, # If this request is resuming a previously interrupted read, `resume_token` should be copied from the last PartialResultSet yielded before the interruption. Doing this enables the new read to resume where the last read left off. The rest of the request parameters must exactly match the request that yielded this token.
   &quot;table&quot;: &quot;A String&quot;, # Required. The name of the table in the database to be read.
@@ -1334,7 +1336,11 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
+            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
+            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
+            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+          },
         },
       ],
     },
diff --git a/docs/dyn/speech_v1.speech.html b/docs/dyn/speech_v1.speech.html
index 2c4c093..c09c435 100644
--- a/docs/dyn/speech_v1.speech.html
+++ b/docs/dyn/speech_v1.speech.html
@@ -129,7 +129,7 @@
     &quot;model&quot;: &quot;A String&quot;, # Which model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the RecognitionConfig. *Model* *Description* command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate.
     &quot;profanityFilter&quot;: True or False, # If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. &quot;f***&quot;. If set to `false` or omitted, profanities won&#x27;t be filtered out.
     &quot;sampleRateHertz&quot;: 42, # Sample rate in Hertz of the audio data sent in all `RecognitionAudio` messages. Valid values are: 8000-48000. 16000 is optimal. For best results, set the sampling rate of the audio source to 16000 Hz. If that&#x27;s not possible, use the native sample rate of the audio source (instead of re-sampling). This field is optional for FLAC and WAV audio files, but is required for all other audio formats. For details, see AudioEncoding.
-    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/context-strength).
+    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation).
       { # Provides &quot;hints&quot; to the speech recognizer to favor specific words and phrases in the results.
         &quot;phrases&quot;: [ # A list of strings containing words and phrases &quot;hints&quot; so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also be set to classes for groups of words that represent common concepts that occur in natural language. For example, rather than providing phrase hints for every month of the year, using the $MONTH class improves the likelihood of correctly transcribing audio that includes months.
           &quot;A String&quot;,
@@ -209,7 +209,7 @@
     &quot;model&quot;: &quot;A String&quot;, # Which model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the RecognitionConfig. *Model* *Description* command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate.
     &quot;profanityFilter&quot;: True or False, # If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. &quot;f***&quot;. If set to `false` or omitted, profanities won&#x27;t be filtered out.
     &quot;sampleRateHertz&quot;: 42, # Sample rate in Hertz of the audio data sent in all `RecognitionAudio` messages. Valid values are: 8000-48000. 16000 is optimal. For best results, set the sampling rate of the audio source to 16000 Hz. If that&#x27;s not possible, use the native sample rate of the audio source (instead of re-sampling). This field is optional for FLAC and WAV audio files, but is required for all other audio formats. For details, see AudioEncoding.
-    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/context-strength).
+    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation).
       { # Provides &quot;hints&quot; to the speech recognizer to favor specific words and phrases in the results.
         &quot;phrases&quot;: [ # A list of strings containing words and phrases &quot;hints&quot; so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also be set to classes for groups of words that represent common concepts that occur in natural language. For example, rather than providing phrase hints for every month of the year, using the $MONTH class improves the likelihood of correctly transcribing audio that includes months.
           &quot;A String&quot;,
diff --git a/docs/dyn/speech_v1p1beta1.speech.html b/docs/dyn/speech_v1p1beta1.speech.html
index b9df605..f738246 100644
--- a/docs/dyn/speech_v1p1beta1.speech.html
+++ b/docs/dyn/speech_v1p1beta1.speech.html
@@ -103,7 +103,7 @@
     &quot;uri&quot;: &quot;A String&quot;, # URI that points to a file that contains audio data bytes as specified in `RecognitionConfig`. The file must not be compressed (for example, gzip). Currently, only Google Cloud Storage URIs are supported, which must be specified in the following format: `gs://bucket_name/object_name` (other URI formats return google.rpc.Code.INVALID_ARGUMENT). For more information, see [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
   },
   &quot;config&quot;: { # Provides information to the recognizer that specifies how to process the request. # Required. Provides information to the recognizer that specifies how to process the request.
-    &quot;adaptation&quot;: { # Speech adaptation configuration. # Speech adaptation configuration improves the accuracy of speech recognition. When speech adaptation is set it supersedes the `speech_contexts` field. For more information, see the [speech adaptation](https://cloud.google.com/speech-to-text/docs/context-strength) documentation.
+    &quot;adaptation&quot;: { # Speech adaptation configuration. # Speech adaptation configuration improves the accuracy of speech recognition. When speech adaptation is set it supersedes the `speech_contexts` field. For more information, see the [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation) documentation.
       &quot;customClasses&quot;: [ # A collection of custom classes. To specify the classes inline, leave the class&#x27; `name` blank and fill in the rest of its fields, giving it a unique `custom_class_id`. Refer to the inline defined class in phrase hints by its `custom_class_id`.
         { # A set of words or phrases that represents a common concept likely to appear in your audio, for example a list of passenger ship names. CustomClass items can be substituted into placeholders that you set in PhraseSet phrases.
           &quot;customClassId&quot;: &quot;A String&quot;, # If this custom class is a resource, the custom_class_id is the resource id of the CustomClass. Case sensitive.
@@ -145,6 +145,8 @@
     &quot;enableAutomaticPunctuation&quot;: True or False, # If &#x27;true&#x27;, adds punctuation to recognition result hypotheses. This feature is only available in select languages. Setting this for requests in other languages has no effect at all. The default &#x27;false&#x27; value does not add punctuation to result hypotheses.
     &quot;enableSeparateRecognitionPerChannel&quot;: True or False, # This needs to be set to `true` explicitly and `audio_channel_count` &gt; 1 to get each channel recognized separately. The recognition result will contain a `channel_tag` field to state which channel that result belongs to. If this is not true, we will only recognize the first channel. The request is billed cumulatively for all channels recognized: `audio_channel_count` multiplied by the length of the audio.
     &quot;enableSpeakerDiarization&quot;: True or False, # If &#x27;true&#x27;, enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_tag provided in the WordInfo. Note: Use diarization_config instead.
+    &quot;enableSpokenEmojis&quot;: True or False, # The spoken emoji behavior for the call If not set, uses default behavior based on model of choice If &#x27;true&#x27;, adds spoken emoji formatting for the request. This will replace spoken emojis with the corresponding Unicode symbols in the final transcript. If &#x27;false&#x27;, spoken emojis are not replaced.
+    &quot;enableSpokenPunctuation&quot;: True or False, # The spoken punctuation behavior for the call If not set, uses default behavior based on model of choice e.g. command_and_search will enable spoken punctuation by default If &#x27;true&#x27;, replaces spoken punctuation with the corresponding symbols in the request. For example, &quot;how are you question mark&quot; becomes &quot;how are you?&quot;. See https://cloud.google.com/speech-to-text/docs/spoken-punctuation for support. If &#x27;false&#x27;, spoken punctuation is not replaced.
     &quot;enableWordConfidence&quot;: True or False, # If `true`, the top result includes a list of words and the confidence for those words. If `false`, no word-level confidence information is returned. The default is `false`.
     &quot;enableWordTimeOffsets&quot;: True or False, # If `true`, the top result includes a list of words and the start and end time offsets (timestamps) for those words. If `false`, no word-level time offset information is returned. The default is `false`.
     &quot;encoding&quot;: &quot;A String&quot;, # Encoding of audio data sent in all `RecognitionAudio` messages. This field is optional for `FLAC` and `WAV` audio files and required for all other audio formats. For details, see AudioEncoding.
@@ -164,7 +166,7 @@
     &quot;model&quot;: &quot;A String&quot;, # Which model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the RecognitionConfig. *Model* *Description* command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate.
     &quot;profanityFilter&quot;: True or False, # If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. &quot;f***&quot;. If set to `false` or omitted, profanities won&#x27;t be filtered out.
     &quot;sampleRateHertz&quot;: 42, # Sample rate in Hertz of the audio data sent in all `RecognitionAudio` messages. Valid values are: 8000-48000. 16000 is optimal. For best results, set the sampling rate of the audio source to 16000 Hz. If that&#x27;s not possible, use the native sample rate of the audio source (instead of re-sampling). This field is optional for FLAC and WAV audio files, but is required for all other audio formats. For details, see AudioEncoding.
-    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/context-strength).
+    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation).
       { # Provides &quot;hints&quot; to the speech recognizer to favor specific words and phrases in the results.
         &quot;boost&quot;: 3.14, # Hint Boost. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost values would correspond to anti-biasing. Anti-biasing is not enabled, so negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case.
         &quot;phrases&quot;: [ # A list of strings containing words and phrases &quot;hints&quot; so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also be set to classes for groups of words that represent common concepts that occur in natural language. For example, rather than providing phrase hints for every month of the year, using the $MONTH class improves the likelihood of correctly transcribing audio that includes months.
@@ -222,7 +224,7 @@
     &quot;uri&quot;: &quot;A String&quot;, # URI that points to a file that contains audio data bytes as specified in `RecognitionConfig`. The file must not be compressed (for example, gzip). Currently, only Google Cloud Storage URIs are supported, which must be specified in the following format: `gs://bucket_name/object_name` (other URI formats return google.rpc.Code.INVALID_ARGUMENT). For more information, see [Request URIs](https://cloud.google.com/storage/docs/reference-uris).
   },
   &quot;config&quot;: { # Provides information to the recognizer that specifies how to process the request. # Required. Provides information to the recognizer that specifies how to process the request.
-    &quot;adaptation&quot;: { # Speech adaptation configuration. # Speech adaptation configuration improves the accuracy of speech recognition. When speech adaptation is set it supersedes the `speech_contexts` field. For more information, see the [speech adaptation](https://cloud.google.com/speech-to-text/docs/context-strength) documentation.
+    &quot;adaptation&quot;: { # Speech adaptation configuration. # Speech adaptation configuration improves the accuracy of speech recognition. When speech adaptation is set it supersedes the `speech_contexts` field. For more information, see the [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation) documentation.
       &quot;customClasses&quot;: [ # A collection of custom classes. To specify the classes inline, leave the class&#x27; `name` blank and fill in the rest of its fields, giving it a unique `custom_class_id`. Refer to the inline defined class in phrase hints by its `custom_class_id`.
         { # A set of words or phrases that represents a common concept likely to appear in your audio, for example a list of passenger ship names. CustomClass items can be substituted into placeholders that you set in PhraseSet phrases.
           &quot;customClassId&quot;: &quot;A String&quot;, # If this custom class is a resource, the custom_class_id is the resource id of the CustomClass. Case sensitive.
@@ -264,6 +266,8 @@
     &quot;enableAutomaticPunctuation&quot;: True or False, # If &#x27;true&#x27;, adds punctuation to recognition result hypotheses. This feature is only available in select languages. Setting this for requests in other languages has no effect at all. The default &#x27;false&#x27; value does not add punctuation to result hypotheses.
     &quot;enableSeparateRecognitionPerChannel&quot;: True or False, # This needs to be set to `true` explicitly and `audio_channel_count` &gt; 1 to get each channel recognized separately. The recognition result will contain a `channel_tag` field to state which channel that result belongs to. If this is not true, we will only recognize the first channel. The request is billed cumulatively for all channels recognized: `audio_channel_count` multiplied by the length of the audio.
     &quot;enableSpeakerDiarization&quot;: True or False, # If &#x27;true&#x27;, enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_tag provided in the WordInfo. Note: Use diarization_config instead.
+    &quot;enableSpokenEmojis&quot;: True or False, # The spoken emoji behavior for the call If not set, uses default behavior based on model of choice If &#x27;true&#x27;, adds spoken emoji formatting for the request. This will replace spoken emojis with the corresponding Unicode symbols in the final transcript. If &#x27;false&#x27;, spoken emojis are not replaced.
+    &quot;enableSpokenPunctuation&quot;: True or False, # The spoken punctuation behavior for the call If not set, uses default behavior based on model of choice e.g. command_and_search will enable spoken punctuation by default If &#x27;true&#x27;, replaces spoken punctuation with the corresponding symbols in the request. For example, &quot;how are you question mark&quot; becomes &quot;how are you?&quot;. See https://cloud.google.com/speech-to-text/docs/spoken-punctuation for support. If &#x27;false&#x27;, spoken punctuation is not replaced.
     &quot;enableWordConfidence&quot;: True or False, # If `true`, the top result includes a list of words and the confidence for those words. If `false`, no word-level confidence information is returned. The default is `false`.
     &quot;enableWordTimeOffsets&quot;: True or False, # If `true`, the top result includes a list of words and the start and end time offsets (timestamps) for those words. If `false`, no word-level time offset information is returned. The default is `false`.
     &quot;encoding&quot;: &quot;A String&quot;, # Encoding of audio data sent in all `RecognitionAudio` messages. This field is optional for `FLAC` and `WAV` audio files and required for all other audio formats. For details, see AudioEncoding.
@@ -283,7 +287,7 @@
     &quot;model&quot;: &quot;A String&quot;, # Which model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the RecognitionConfig. *Model* *Description* command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate.
     &quot;profanityFilter&quot;: True or False, # If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. &quot;f***&quot;. If set to `false` or omitted, profanities won&#x27;t be filtered out.
     &quot;sampleRateHertz&quot;: 42, # Sample rate in Hertz of the audio data sent in all `RecognitionAudio` messages. Valid values are: 8000-48000. 16000 is optimal. For best results, set the sampling rate of the audio source to 16000 Hz. If that&#x27;s not possible, use the native sample rate of the audio source (instead of re-sampling). This field is optional for FLAC and WAV audio files, but is required for all other audio formats. For details, see AudioEncoding.
-    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/context-strength).
+    &quot;speechContexts&quot;: [ # Array of SpeechContext. A means to provide context to assist the speech recognition. For more information, see [speech adaptation](https://cloud.google.com/speech-to-text/docs/adaptation).
       { # Provides &quot;hints&quot; to the speech recognizer to favor specific words and phrases in the results.
         &quot;boost&quot;: 3.14, # Hint Boost. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost values would correspond to anti-biasing. Anti-biasing is not enabled, so negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case.
         &quot;phrases&quot;: [ # A list of strings containing words and phrases &quot;hints&quot; so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also be set to classes for groups of words that represent common concepts that occur in natural language. For example, rather than providing phrase hints for every month of the year, using the $MONTH class improves the likelihood of correctly transcribing audio that includes months.
diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html
index c53aac9..76afdc3 100644
--- a/docs/dyn/sqladmin_v1beta4.instances.html
+++ b/docs/dyn/sqladmin_v1beta4.instances.html
@@ -760,7 +760,7 @@
   &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
   &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
   &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
-  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11* or *POSTGRES_12* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
   &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
     &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#diskEncryptionConfiguration*.
     &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
@@ -920,7 +920,7 @@
     &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
     &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
     &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
-    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-n1-standard-1* (MySQL instances) or *db-custom-1-3840* (PostgreSQL instances).
+    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-custom-1-3840* .
     &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -1057,7 +1057,7 @@
   &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
   &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
   &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
-  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11* or *POSTGRES_12* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
   &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
     &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#diskEncryptionConfiguration*.
     &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
@@ -1217,7 +1217,7 @@
     &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
     &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
     &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
-    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-n1-standard-1* (MySQL instances) or *db-custom-1-3840* (PostgreSQL instances).
+    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-custom-1-3840* .
     &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -1330,7 +1330,7 @@
       &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
       &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
       &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
-      &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11* or *POSTGRES_12* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+      &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
       &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
         &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#diskEncryptionConfiguration*.
         &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
@@ -1490,7 +1490,7 @@
         &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
         &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
         &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
-        &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-n1-standard-1* (MySQL instances) or *db-custom-1-3840* (PostgreSQL instances).
+        &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-custom-1-3840* .
         &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
@@ -1575,7 +1575,7 @@
   &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
   &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
   &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
-  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11* or *POSTGRES_12* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
   &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
     &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#diskEncryptionConfiguration*.
     &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
@@ -1735,7 +1735,7 @@
     &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
     &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
     &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
-    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-n1-standard-1* (MySQL instances) or *db-custom-1-3840* (PostgreSQL instances).
+    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-custom-1-3840* .
     &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
       &quot;a_key&quot;: &quot;A String&quot;,
     },
@@ -2559,7 +2559,7 @@
   &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
   &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
   &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
-  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11* or *POSTGRES_12* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
   &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
     &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#diskEncryptionConfiguration*.
     &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
@@ -2719,7 +2719,7 @@
     &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
     &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
     &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
-    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-n1-standard-1* (MySQL instances) or *db-custom-1-3840* (PostgreSQL instances).
+    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example *db-custom-1-3840* .
     &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
       &quot;a_key&quot;: &quot;A String&quot;,
     },
diff --git a/docs/dyn/sqladmin_v1beta4.tiers.html b/docs/dyn/sqladmin_v1beta4.tiers.html
index f6bdd6f..7afdf50 100644
--- a/docs/dyn/sqladmin_v1beta4.tiers.html
+++ b/docs/dyn/sqladmin_v1beta4.tiers.html
@@ -79,7 +79,7 @@
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all available machine types (tiers) for Cloud SQL, for example, db-n1-standard-1. For related information, see Pricing.</p>
+<p class="firstline">Lists all available machine types (tiers) for Cloud SQL, for example, db-custom-1-3840. For related information, see Pricing.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -88,7 +88,7 @@
 
 <div class="method">
     <code class="details" id="list">list(project, x__xgafv=None)</code>
-  <pre>Lists all available machine types (tiers) for Cloud SQL, for example, db-n1-standard-1. For related information, see Pricing.
+  <pre>Lists all available machine types (tiers) for Cloud SQL, for example, db-custom-1-3840. For related information, see Pricing.
 
 Args:
   project: string, Project ID of the project for which to list tiers. (required)
@@ -109,7 +109,7 @@
       &quot;region&quot;: [ # The applicable regions for this tier.
         &quot;A String&quot;,
       ],
-      &quot;tier&quot;: &quot;A String&quot;, # An identifier for the machine type, for example, db-n1-standard-1. For related information, see Pricing.
+      &quot;tier&quot;: &quot;A String&quot;, # An identifier for the machine type, for example, db-custom-1-3840. For related information, see Pricing.
     },
   ],
   &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#tiersList*.
diff --git a/docs/dyn/tpu_v1.projects.locations.html b/docs/dyn/tpu_v1.projects.locations.html
index 06941e1..a61fa52 100644
--- a/docs/dyn/tpu_v1.projects.locations.html
+++ b/docs/dyn/tpu_v1.projects.locations.html
@@ -145,9 +145,9 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/tpu_v1.projects.locations.nodes.html b/docs/dyn/tpu_v1.projects.locations.nodes.html
index f79fd79..aa2883e 100644
--- a/docs/dyn/tpu_v1.projects.locations.nodes.html
+++ b/docs/dyn/tpu_v1.projects.locations.nodes.html
@@ -118,6 +118,7 @@
 
 { # A TPU instance.
   &quot;acceleratorType&quot;: &quot;A String&quot;, # Required. The type of hardware accelerators associated with this node.
+  &quot;apiVersion&quot;: &quot;A String&quot;, # Output only. The API version that created this Node.
   &quot;cidrBlock&quot;: &quot;A String&quot;, # The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user&#x27;s provided network, or the provided network is peered with another network that is using that CIDR block.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the node was created.
   &quot;description&quot;: &quot;A String&quot;, # The user-supplied description of the TPU. Maximum of 512 characters.
@@ -235,6 +236,7 @@
 
     { # A TPU instance.
   &quot;acceleratorType&quot;: &quot;A String&quot;, # Required. The type of hardware accelerators associated with this node.
+  &quot;apiVersion&quot;: &quot;A String&quot;, # Output only. The API version that created this Node.
   &quot;cidrBlock&quot;: &quot;A String&quot;, # The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user&#x27;s provided network, or the provided network is peered with another network that is using that CIDR block.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the node was created.
   &quot;description&quot;: &quot;A String&quot;, # The user-supplied description of the TPU. Maximum of 512 characters.
@@ -293,6 +295,7 @@
   &quot;nodes&quot;: [ # The listed nodes.
     { # A TPU instance.
       &quot;acceleratorType&quot;: &quot;A String&quot;, # Required. The type of hardware accelerators associated with this node.
+      &quot;apiVersion&quot;: &quot;A String&quot;, # Output only. The API version that created this Node.
       &quot;cidrBlock&quot;: &quot;A String&quot;, # The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user&#x27;s provided network, or the provided network is peered with another network that is using that CIDR block.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the node was created.
       &quot;description&quot;: &quot;A String&quot;, # The user-supplied description of the TPU. Maximum of 512 characters.
diff --git a/docs/dyn/tpu_v1alpha1.projects.locations.html b/docs/dyn/tpu_v1alpha1.projects.locations.html
index 7b39d55..390e017 100644
--- a/docs/dyn/tpu_v1alpha1.projects.locations.html
+++ b/docs/dyn/tpu_v1alpha1.projects.locations.html
@@ -145,9 +145,9 @@
 
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
-  filter: string, The standard list filter.
-  pageSize: integer, The standard list page size.
-  pageToken: string, The standard list page token.
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html b/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html
index 287e2e6..d61b105 100644
--- a/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html
+++ b/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html
@@ -118,6 +118,7 @@
 
 { # A TPU instance.
   &quot;acceleratorType&quot;: &quot;A String&quot;, # Required. The type of hardware accelerators associated with this node.
+  &quot;apiVersion&quot;: &quot;A String&quot;, # Output only. The API version that created this Node.
   &quot;cidrBlock&quot;: &quot;A String&quot;, # The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user&#x27;s provided network, or the provided network is peered with another network that is using that CIDR block.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the node was created.
   &quot;description&quot;: &quot;A String&quot;, # The user-supplied description of the TPU. Maximum of 512 characters.
@@ -235,6 +236,7 @@
 
     { # A TPU instance.
   &quot;acceleratorType&quot;: &quot;A String&quot;, # Required. The type of hardware accelerators associated with this node.
+  &quot;apiVersion&quot;: &quot;A String&quot;, # Output only. The API version that created this Node.
   &quot;cidrBlock&quot;: &quot;A String&quot;, # The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user&#x27;s provided network, or the provided network is peered with another network that is using that CIDR block.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the node was created.
   &quot;description&quot;: &quot;A String&quot;, # The user-supplied description of the TPU. Maximum of 512 characters.
@@ -293,6 +295,7 @@
   &quot;nodes&quot;: [ # The listed nodes.
     { # A TPU instance.
       &quot;acceleratorType&quot;: &quot;A String&quot;, # Required. The type of hardware accelerators associated with this node.
+      &quot;apiVersion&quot;: &quot;A String&quot;, # Output only. The API version that created this Node.
       &quot;cidrBlock&quot;: &quot;A String&quot;, # The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user&#x27;s provided network, or the provided network is peered with another network that is using that CIDR block.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the node was created.
       &quot;description&quot;: &quot;A String&quot;, # The user-supplied description of the TPU. Maximum of 512 characters.
diff --git a/docs/dyn/transcoder_v1beta1.projects.locations.jobTemplates.html b/docs/dyn/transcoder_v1beta1.projects.locations.jobTemplates.html
index 18877d4..5b8b4ff 100644
--- a/docs/dyn/transcoder_v1beta1.projects.locations.jobTemplates.html
+++ b/docs/dyn/transcoder_v1beta1.projects.locations.jobTemplates.html
@@ -178,7 +178,7 @@
           &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
           &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
           &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
           &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
           &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
           &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
@@ -408,7 +408,7 @@
           &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
           &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
           &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
           &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
           &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
           &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
@@ -662,7 +662,7 @@
           &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
           &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
           &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
           &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
           &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
           &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
@@ -902,7 +902,7 @@
               &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
               &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
               &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-              &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+              &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
               &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
               &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
               &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
diff --git a/docs/dyn/transcoder_v1beta1.projects.locations.jobs.html b/docs/dyn/transcoder_v1beta1.projects.locations.jobs.html
index 7efdf85..d458b7e 100644
--- a/docs/dyn/transcoder_v1beta1.projects.locations.jobs.html
+++ b/docs/dyn/transcoder_v1beta1.projects.locations.jobs.html
@@ -178,7 +178,7 @@
           &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
           &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
           &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
           &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
           &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
           &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
@@ -432,7 +432,7 @@
           &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
           &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
           &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
           &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
           &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
           &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
@@ -711,7 +711,7 @@
           &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
           &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
           &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+          &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
           &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
           &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
           &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
@@ -976,7 +976,7 @@
               &quot;crfLevel&quot;: 42, # Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.
               &quot;enableTwoPass&quot;: True or False, # Use two-pass encoding strategy to achieve better video quality. `VideoStream.rate_control_mode` must be `&quot;vbr&quot;`. The default is `false`.
               &quot;entropyCoder&quot;: &quot;A String&quot;, # The entropy coder to use. The default is `&quot;cabac&quot;`. Supported entropy coders: - &#x27;cavlc&#x27; - &#x27;cabac&#x27;
-              &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. The following table shows the computed video FPS given the target FPS (in parenthesis) and input FPS (in the first column): ``` | | (30) | (60) | (25) | (50) | |--------|--------|--------|------|------| | 240 | Fail | Fail | Fail | Fail | | 120 | 30 | 60 | 20 | 30 | | 100 | 25 | 50 | 20 | 30 | | 50 | 25 | 50 | 20 | 30 | | 60 | 30 | 60 | 20 | 30 | | 59.94 | 29.97 | 59.94 | 20 | 30 | | 48 | 24 | 48 | 20 | 30 | | 30 | 30 | 30 | 20 | 30 | | 25 | 25 | 25 | 20 | 30 | | 24 | 24 | 24 | 20 | 30 | | 23.976 | 23.976 | 23.976 | 20 | 30 | | 15 | 15 | 15 | 20 | 30 | | 12 | 12 | 12 | 20 | 30 | | 10 | 10 | 10 | 20 | 30 | ```
+              &quot;frameRate&quot;: 3.14, # Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
               &quot;gopDuration&quot;: &quot;A String&quot;, # Select the GOP size based on the specified duration. The default is `&quot;3s&quot;`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
               &quot;gopFrameCount&quot;: 42, # Select the GOP size based on the specified frame count. Must be greater than zero.
               &quot;heightPixels&quot;: 42, # The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used.
diff --git a/docs/dyn/translate_v3.projects.locations.html b/docs/dyn/translate_v3.projects.locations.html
index f68fade..f67f0db 100644
--- a/docs/dyn/translate_v3.projects.locations.html
+++ b/docs/dyn/translate_v3.projects.locations.html
@@ -282,7 +282,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/translate_v3beta1.projects.locations.html b/docs/dyn/translate_v3beta1.projects.locations.html
index 0ed3683..cfd629a 100644
--- a/docs/dyn/translate_v3beta1.projects.locations.html
+++ b/docs/dyn/translate_v3beta1.projects.locations.html
@@ -282,7 +282,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/vault_v1.matters.exports.html b/docs/dyn/vault_v1.matters.exports.html
index 8950815..81bf92f 100644
--- a/docs/dyn/vault_v1.matters.exports.html
+++ b/docs/dyn/vault_v1.matters.exports.html
@@ -107,7 +107,7 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # An export
+{ # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
     &quot;files&quot;: [ # Output only. The exported files on cloud storage.
       { # An export file on cloud storage
@@ -210,7 +210,7 @@
 Returns:
   An object of the form:
 
-    { # An export
+    { # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
     &quot;files&quot;: [ # Output only. The exported files on cloud storage.
       { # An export file on cloud storage
@@ -340,7 +340,7 @@
 Returns:
   An object of the form:
 
-    { # An export
+    { # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
     &quot;files&quot;: [ # Output only. The exported files on cloud storage.
       { # An export file on cloud storage
@@ -454,7 +454,7 @@
 
     { # The holds for a matter.
   &quot;exports&quot;: [ # The list of exports.
-    { # An export
+    { # An export To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;cloudStorageSink&quot;: { # Export sink for cloud storage files. # Output only. Export sink for cloud storage files.
         &quot;files&quot;: [ # Output only. The exported files on cloud storage.
           { # An export file on cloud storage
diff --git a/docs/dyn/vault_v1.matters.holds.accounts.html b/docs/dyn/vault_v1.matters.holds.accounts.html
index 82d6751..00ffd02 100644
--- a/docs/dyn/vault_v1.matters.holds.accounts.html
+++ b/docs/dyn/vault_v1.matters.holds.accounts.html
@@ -102,7 +102,7 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+{ # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
   &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
   &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -118,7 +118,7 @@
 Returns:
   An object of the form:
 
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
   &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
   &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -164,7 +164,7 @@
 
     { # Returns a list of held accounts for a hold.
   &quot;accounts&quot;: [ # The held accounts on a hold.
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
       &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
       &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
diff --git a/docs/dyn/vault_v1.matters.holds.html b/docs/dyn/vault_v1.matters.holds.html
index 3a47d62..8689057 100644
--- a/docs/dyn/vault_v1.matters.holds.html
+++ b/docs/dyn/vault_v1.matters.holds.html
@@ -137,7 +137,7 @@
     { # Response for batch create held accounts.
   &quot;responses&quot;: [ # The list of responses, in the same order as the batch request.
     { # A status detailing the status of each account creation, and the HeldAccount, if successful.
-      &quot;account&quot;: { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. # If present, this account was successfully created.
+      &quot;account&quot;: { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege. # If present, this account was successfully created.
         &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
         &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
         &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -172,9 +172,9 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit.
+{ # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accounts&quot;: [ # If set, the hold applies to the enumerated accounts and org_unit must be empty.
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
       &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
       &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -224,9 +224,9 @@
 Returns:
   An object of the form:
 
-    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit.
+    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accounts&quot;: [ # If set, the hold applies to the enumerated accounts and org_unit must be empty.
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
       &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
       &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -308,9 +308,9 @@
 Returns:
   An object of the form:
 
-    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit.
+    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accounts&quot;: [ # If set, the hold applies to the enumerated accounts and org_unit must be empty.
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
       &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
       &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -376,9 +376,9 @@
 
     { # The holds for a matter.
   &quot;holds&quot;: [ # The list of holds.
-    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit.
+    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accounts&quot;: [ # If set, the hold applies to the enumerated accounts and org_unit must be empty.
-        { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+        { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
           &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
           &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
           &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -487,9 +487,9 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit.
+{ # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accounts&quot;: [ # If set, the hold applies to the enumerated accounts and org_unit must be empty.
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
       &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
       &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
@@ -539,9 +539,9 @@
 Returns:
   An object of the form:
 
-    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit.
+    { # Represents a hold within Vault. A hold restricts purging of artifacts based on the combination of the query and accounts restrictions. A hold can be configured to either apply to an explicitly configured set of accounts, or can be applied to all members of an organizational unit. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;accounts&quot;: [ # If set, the hold applies to the enumerated accounts and org_unit must be empty.
-    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus.
+    { # An account being held in a particular hold. This structure is immutable. This can be either a single user or a google group, depending on the corpus. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;accountId&quot;: &quot;A String&quot;, # The account&#x27;s ID as provided by the Admin SDK.
       &quot;email&quot;: &quot;A String&quot;, # The primary email address of the account. If used as an input, this takes precedence over account ID.
       &quot;firstName&quot;: &quot;A String&quot;, # Output only. The first name of the account holder.
diff --git a/docs/dyn/vault_v1.matters.html b/docs/dyn/vault_v1.matters.html
index ee2b6e9..2d8c69f 100644
--- a/docs/dyn/vault_v1.matters.html
+++ b/docs/dyn/vault_v1.matters.html
@@ -179,7 +179,7 @@
   An object of the form:
 
     { # Response to a CloseMatterRequest.
-  &quot;matter&quot;: { # Represents a matter. # The updated matter, with state CLOSED.
+  &quot;matter&quot;: { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege. # The updated matter, with state CLOSED.
     &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
     &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
     &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -293,7 +293,7 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # Represents a matter.
+{ # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -314,7 +314,7 @@
 Returns:
   An object of the form:
 
-    { # Represents a matter.
+    { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -342,7 +342,7 @@
 Returns:
   An object of the form:
 
-    { # Represents a matter.
+    { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -375,7 +375,7 @@
 Returns:
   An object of the form:
 
-    { # Represents a matter.
+    { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -417,7 +417,7 @@
 
     { # Provides the list of matters.
   &quot;matters&quot;: [ # List of matters.
-    { # Represents a matter.
+    { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
       &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
       &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -494,7 +494,7 @@
   An object of the form:
 
     { # Response to a ReopenMatterRequest.
-  &quot;matter&quot;: { # Represents a matter. # The updated matter, with state OPEN.
+  &quot;matter&quot;: { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege. # The updated matter, with state OPEN.
     &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
     &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
     &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -529,7 +529,7 @@
 Returns:
   An object of the form:
 
-    { # Represents a matter.
+    { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -552,7 +552,7 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # Represents a matter.
+{ # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
@@ -573,7 +573,7 @@
 Returns:
   An object of the form:
 
-    { # Represents a matter.
+    { # Represents a matter. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;description&quot;: &quot;A String&quot;, # The description of the matter.
   &quot;matterId&quot;: &quot;A String&quot;, # The matter ID which is generated by the server. Should be blank when creating a new matter.
   &quot;matterPermissions&quot;: [ # List of users and access to the matter. Currently there is no programmer defined limit on the number of permissions a matter can have.
diff --git a/docs/dyn/vault_v1.matters.savedQueries.html b/docs/dyn/vault_v1.matters.savedQueries.html
index d25e803..41f9578 100644
--- a/docs/dyn/vault_v1.matters.savedQueries.html
+++ b/docs/dyn/vault_v1.matters.savedQueries.html
@@ -107,7 +107,7 @@
   body: object, The request body.
     The object takes the form of:
 
-{ # Definition of the saved query.
+{ # Definition of the saved query. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The server generated timestamp at which saved query was created.
   &quot;displayName&quot;: &quot;A String&quot;, # Name of the saved query.
   &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID of the associated matter. The server does not look at this field during create and always uses matter id in the URL.
@@ -171,7 +171,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of the saved query.
+    { # Definition of the saved query. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The server generated timestamp at which saved query was created.
   &quot;displayName&quot;: &quot;A String&quot;, # Name of the saved query.
   &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID of the associated matter. The server does not look at this field during create and always uses matter id in the URL.
@@ -262,7 +262,7 @@
 Returns:
   An object of the form:
 
-    { # Definition of the saved query.
+    { # Definition of the saved query. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The server generated timestamp at which saved query was created.
   &quot;displayName&quot;: &quot;A String&quot;, # Name of the saved query.
   &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID of the associated matter. The server does not look at this field during create and always uses matter id in the URL.
@@ -338,7 +338,7 @@
     { # Definition of the response for method ListSaveQuery.
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Page token to retrieve the next page of results in the list. If this is empty, then there are no more saved queries to list.
   &quot;savedQueries&quot;: [ # List of output saved queries.
-    { # Definition of the saved query.
+    { # Definition of the saved query. To work with Vault resources, the account must have the [required Vault privileges] (https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The server generated timestamp at which saved query was created.
       &quot;displayName&quot;: &quot;A String&quot;, # Name of the saved query.
       &quot;matterId&quot;: &quot;A String&quot;, # Output only. The matter ID of the associated matter. The server does not look at this field during create and always uses matter id in the URL.
diff --git a/docs/dyn/webrisk_v1.hashes.html b/docs/dyn/webrisk_v1.hashes.html
new file mode 100644
index 0000000..afba40a
--- /dev/null
+++ b/docs/dyn/webrisk_v1.hashes.html
@@ -0,0 +1,123 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.hashes.html">hashes</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#search">search(hashPrefix=None, threatTypes=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the full hashes that match the requested hash prefix. This is used after a hash prefix is looked up in a threatList and there is a match. The client side threatList only holds partial hashes so the client must query this method to determine if there is a full hash match of a threat.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(hashPrefix=None, threatTypes=None, x__xgafv=None)</code>
+  <pre>Gets the full hashes that match the requested hash prefix. This is used after a hash prefix is looked up in a threatList and there is a match. The client side threatList only holds partial hashes so the client must query this method to determine if there is a full hash match of a threat.
+
+Args:
+  hashPrefix: string, A hash prefix, consisting of the most significant 4-32 bytes of a SHA256 hash. For JSON requests, this field is base64-encoded. Note that if this parameter is provided by a URI, it must be encoded using the web safe base64 variant (RFC 4648).
+  threatTypes: string, Required. The ThreatLists to search in. Multiple ThreatLists may be specified. (repeated)
+    Allowed values
+      THREAT_TYPE_UNSPECIFIED - No entries should match this threat type. This threat type is unused.
+      MALWARE - Malware targeting any platform.
+      SOCIAL_ENGINEERING - Social engineering targeting any platform.
+      UNWANTED_SOFTWARE - Unwanted software targeting any platform.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+  &quot;negativeExpireTime&quot;: &quot;A String&quot;, # For requested entities that did not match the threat list, how long to cache the response until.
+  &quot;threats&quot;: [ # The full hashes that matched the requested prefixes. The hash will be populated in the key.
+    { # Contains threat information on a matching hash.
+      &quot;expireTime&quot;: &quot;A String&quot;, # The cache lifetime for the returned match. Clients must not cache this response past this timestamp to avoid false positives.
+      &quot;hash&quot;: &quot;A String&quot;, # A 32 byte SHA256 hash. This field is in binary format. For JSON requests, hashes are base64-encoded.
+      &quot;threatTypes&quot;: [ # The ThreatList this threat belongs to. This must contain at least one entry.
+        &quot;A String&quot;,
+      ],
+    },
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.html b/docs/dyn/webrisk_v1.html
new file mode 100644
index 0000000..ec3abcf
--- /dev/null
+++ b/docs/dyn/webrisk_v1.html
@@ -0,0 +1,126 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="webrisk_v1.hashes.html">hashes()</a></code>
+</p>
+<p class="firstline">Returns the hashes Resource.</p>
+
+<p class="toc_element">
+  <code><a href="webrisk_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="webrisk_v1.threatLists.html">threatLists()</a></code>
+</p>
+<p class="firstline">Returns the threatLists Resource.</p>
+
+<p class="toc_element">
+  <code><a href="webrisk_v1.uris.html">uris()</a></code>
+</p>
+<p class="firstline">Returns the uris Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.projects.html b/docs/dyn/webrisk_v1.projects.html
new file mode 100644
index 0000000..d600ffa
--- /dev/null
+++ b/docs/dyn/webrisk_v1.projects.html
@@ -0,0 +1,101 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="webrisk_v1.projects.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="webrisk_v1.projects.submissions.html">submissions()</a></code>
+</p>
+<p class="firstline">Returns the submissions Resource.</p>
+
+<p class="toc_element">
+  <code><a href="webrisk_v1.projects.uris.html">uris()</a></code>
+</p>
+<p class="firstline">Returns the uris Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.projects.operations.html b/docs/dyn/webrisk_v1.projects.operations.html
new file mode 100644
index 0000000..30eb08c
--- /dev/null
+++ b/docs/dyn/webrisk_v1.projects.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.projects.html">projects</a> . <a href="webrisk_v1.projects.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection 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="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # 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.
+      &quot;done&quot;: 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.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+      &quot;response&quot;: { # 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`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.projects.submissions.html b/docs/dyn/webrisk_v1.projects.submissions.html
new file mode 100644
index 0000000..3fb8ee8
--- /dev/null
+++ b/docs/dyn/webrisk_v1.projects.submissions.html
@@ -0,0 +1,121 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.projects.html">projects</a> . <a href="webrisk_v1.projects.submissions.html">submissions</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a Submission of a URI suspected of containing phishing content to be reviewed. If the result verifies the existence of malicious phishing content, the site will be added to the [Google's Social Engineering lists](https://support.google.com/webmasters/answer/6350487/) in order to protect users that could get exposed to this threat in the future. Only allowlisted projects can use this method during Early Access. Please reach out to Sales or your customer engineer to obtain access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates a Submission of a URI suspected of containing phishing content to be reviewed. If the result verifies the existence of malicious phishing content, the site will be added to the [Google&#x27;s Social Engineering lists](https://support.google.com/webmasters/answer/6350487/) in order to protect users that could get exposed to this threat in the future. Only allowlisted projects can use this method during Early Access. Please reach out to Sales or your customer engineer to obtain access.
+
+Args:
+  parent: string, Required. The name of the project that is making the submission. This string is in the format &quot;projects/{project_number}&quot;. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Wraps a URI that might be displaying malicious content.
+  &quot;threatTypes&quot;: [ # ThreatTypes found to be associated with the submitted URI after reviewing it. This may be empty if the URI was not added to any list.
+    &quot;A String&quot;,
+  ],
+  &quot;uri&quot;: &quot;A String&quot;, # Required. The URI that is being reported for malicious content to be analyzed.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Wraps a URI that might be displaying malicious content.
+  &quot;threatTypes&quot;: [ # ThreatTypes found to be associated with the submitted URI after reviewing it. This may be empty if the URI was not added to any list.
+    &quot;A String&quot;,
+  ],
+  &quot;uri&quot;: &quot;A String&quot;, # Required. The URI that is being reported for malicious content to be analyzed.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.projects.uris.html b/docs/dyn/webrisk_v1.projects.uris.html
new file mode 100644
index 0000000..b25239c
--- /dev/null
+++ b/docs/dyn/webrisk_v1.projects.uris.html
@@ -0,0 +1,136 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.projects.html">projects</a> . <a href="webrisk_v1.projects.uris.html">uris</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#submit">submit(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Submits a URI suspected of containing malicious content to be reviewed. Returns a google.longrunning.Operation which, once the review is complete, is updated with its result. You can use the [Pub/Sub API] (https://cloud.google.com/pubsub) to receive notifications for the returned Operation. If the result verifies the existence of malicious content, the site will be added to the [Google's Social Engineering lists] (https://support.google.com/webmasters/answer/6350487/) in order to protect users that could get exposed to this threat in the future. Only allowlisted projects can use this method during Early Access. Please reach out to Sales or your customer engineer to obtain access.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="submit">submit(parent, body=None, x__xgafv=None)</code>
+  <pre>Submits a URI suspected of containing malicious content to be reviewed. Returns a google.longrunning.Operation which, once the review is complete, is updated with its result. You can use the [Pub/Sub API] (https://cloud.google.com/pubsub) to receive notifications for the returned Operation. If the result verifies the existence of malicious content, the site will be added to the [Google&#x27;s Social Engineering lists] (https://support.google.com/webmasters/answer/6350487/) in order to protect users that could get exposed to this threat in the future. Only allowlisted projects can use this method during Early Access. Please reach out to Sales or your customer engineer to obtain access.
+
+Args:
+  parent: string, Required. The name of the project that is making the submission. This string is in the format &quot;projects/{project_number}&quot;. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request to send a potentially malicious URI to WebRisk.
+  &quot;submission&quot;: { # Wraps a URI that might be displaying malicious content. # Required. The submission that contains the URI to be scanned.
+    &quot;threatTypes&quot;: [ # ThreatTypes found to be associated with the submitted URI after reviewing it. This may be empty if the URI was not added to any list.
+      &quot;A String&quot;,
+    ],
+    &quot;uri&quot;: &quot;A String&quot;, # Required. The URI that is being reported for malicious content to be analyzed.
+  },
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: 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.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # 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.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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 be a resource name ending with `operations/{unique_id}`.
+  &quot;response&quot;: { # 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`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.threatLists.html b/docs/dyn/webrisk_v1.threatLists.html
new file mode 100644
index 0000000..2bfd313
--- /dev/null
+++ b/docs/dyn/webrisk_v1.threatLists.html
@@ -0,0 +1,153 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.threatLists.html">threatLists</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#computeDiff">computeDiff(constraints_maxDatabaseEntries=None, constraints_maxDiffEntries=None, constraints_supportedCompressions=None, threatType=None, versionToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the most recent threat list diffs. These diffs should be applied to a local database of hashes to keep it up-to-date. If the local database is empty or excessively out-of-date, a complete snapshot of the database will be returned. This Method only updates a single ThreatList at a time. To update multiple ThreatList databases, this method needs to be called once for each list.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="computeDiff">computeDiff(constraints_maxDatabaseEntries=None, constraints_maxDiffEntries=None, constraints_supportedCompressions=None, threatType=None, versionToken=None, x__xgafv=None)</code>
+  <pre>Gets the most recent threat list diffs. These diffs should be applied to a local database of hashes to keep it up-to-date. If the local database is empty or excessively out-of-date, a complete snapshot of the database will be returned. This Method only updates a single ThreatList at a time. To update multiple ThreatList databases, this method needs to be called once for each list.
+
+Args:
+  constraints_maxDatabaseEntries: integer, Sets the maximum number of entries that the client is willing to have in the local database. This should be a power of 2 between 2**10 and 2**20. If zero, no database size limit is set.
+  constraints_maxDiffEntries: integer, The maximum size in number of entries. The diff will not contain more entries than this value. This should be a power of 2 between 2**10 and 2**20. If zero, no diff size limit is set.
+  constraints_supportedCompressions: string, The compression types supported by the client. (repeated)
+    Allowed values
+      COMPRESSION_TYPE_UNSPECIFIED - Unknown.
+      RAW - Raw, uncompressed data.
+      RICE - Rice-Golomb encoded data.
+  threatType: string, Required. The threat list to update. Only a single ThreatType should be specified per request. If you want to handle multiple ThreatTypes, you must make one request per ThreatType.
+    Allowed values
+      THREAT_TYPE_UNSPECIFIED - No entries should match this threat type. This threat type is unused.
+      MALWARE - Malware targeting any platform.
+      SOCIAL_ENGINEERING - Social engineering targeting any platform.
+      UNWANTED_SOFTWARE - Unwanted software targeting any platform.
+  versionToken: string, The current version token of the client for the requested list (the client version that was received from the last successful diff). If the client does not have a version token (this is the first time calling ComputeThreatListDiff), this may be left empty and a full database snapshot will be returned.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+  &quot;additions&quot;: { # Contains the set of entries to add to a local database. May contain a combination of compressed and raw data in a single response. # A set of entries to add to a local threat type&#x27;s list.
+    &quot;rawHashes&quot;: [ # The raw SHA256-formatted entries. Repeated to allow returning sets of hashes with different prefix sizes.
+      { # The uncompressed threat entries in hash format. Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4 bytes, but some hashes are lengthened if they collide with the hash of a popular URI. Used for sending ThreatEntryAdditons to clients that do not support compression, or when sending non-4-byte hashes to clients that do support compression.
+        &quot;prefixSize&quot;: 42, # The number of bytes for each prefix encoded below. This field can be anywhere from 4 (shortest prefix) to 32 (full SHA256 hash). In practice this is almost always 4, except in exceptional circumstances.
+        &quot;rawHashes&quot;: &quot;A String&quot;, # The hashes, in binary format, concatenated into one long string. Hashes are sorted in lexicographic order. For JSON API users, hashes are base64-encoded.
+      },
+    ],
+    &quot;riceHashes&quot;: { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices. # The encoded 4-byte prefixes of SHA256-formatted entries, using a Golomb-Rice encoding. The hashes are converted to uint32, sorted in ascending order, then delta encoded and stored as encoded_data.
+      &quot;encodedData&quot;: &quot;A String&quot;, # The encoded deltas that are encoded using the Golomb-Rice coder.
+      &quot;entryCount&quot;: 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`.
+      &quot;firstValue&quot;: &quot;A String&quot;, # The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer&#x27;s value. If the field is empty or missing, assume zero.
+      &quot;riceParameter&quot;: 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.
+    },
+  },
+  &quot;checksum&quot;: { # The expected state of a client&#x27;s local database. # The expected SHA256 hash of the client state; that is, of the sorted list of all hashes present in the database after applying the provided diff. If the client state doesn&#x27;t match the expected state, the client must discard this diff and retry later.
+    &quot;sha256&quot;: &quot;A String&quot;, # The SHA256 hash of the client state; that is, of the sorted list of all hashes present in the database.
+  },
+  &quot;newVersionToken&quot;: &quot;A String&quot;, # The new opaque client version token. This should be retained by the client and passed into the next call of ComputeThreatListDiff as &#x27;version_token&#x27;. A separate version token should be stored and used for each threatList.
+  &quot;recommendedNextDiff&quot;: &quot;A String&quot;, # The soonest the client should wait before issuing any diff request. Querying sooner is unlikely to produce a meaningful diff. Waiting longer is acceptable considering the use case. If this field is not set clients may update as soon as they want.
+  &quot;removals&quot;: { # Contains the set of entries to remove from a local database. # A set of entries to remove from a local threat type&#x27;s list. This field may be empty.
+    &quot;rawIndices&quot;: { # A set of raw indices to remove from a local list. # The raw removal indices for a local list.
+      &quot;indices&quot;: [ # The indices to remove from a lexicographically-sorted local list.
+        42,
+      ],
+    },
+    &quot;riceIndices&quot;: { # The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices. # The encoded local, lexicographically-sorted list indices, using a Golomb-Rice encoding. Used for sending compressed removal indices. The removal indices (uint32) are sorted in ascending order, then delta encoded and stored as encoded_data.
+      &quot;encodedData&quot;: &quot;A String&quot;, # The encoded deltas that are encoded using the Golomb-Rice coder.
+      &quot;entryCount&quot;: 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`.
+      &quot;firstValue&quot;: &quot;A String&quot;, # The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer&#x27;s value. If the field is empty or missing, assume zero.
+      &quot;riceParameter&quot;: 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.
+    },
+  },
+  &quot;responseType&quot;: &quot;A String&quot;, # The type of response. This may indicate that an action must be taken by the client when the response is received.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/webrisk_v1.uris.html b/docs/dyn/webrisk_v1.uris.html
new file mode 100644
index 0000000..aa4fcab
--- /dev/null
+++ b/docs/dyn/webrisk_v1.uris.html
@@ -0,0 +1,119 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="webrisk_v1.html">Web Risk API</a> . <a href="webrisk_v1.uris.html">uris</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#search">search(threatTypes=None, uri=None, x__xgafv=None)</a></code></p>
+<p class="firstline">This method is used to check whether a URI is on a given threatList. Multiple threatLists may be searched in a single query. The response will list all requested threatLists the URI was found to match. If the URI is not found on any of the requested ThreatList an empty response will be returned.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="search">search(threatTypes=None, uri=None, x__xgafv=None)</code>
+  <pre>This method is used to check whether a URI is on a given threatList. Multiple threatLists may be searched in a single query. The response will list all requested threatLists the URI was found to match. If the URI is not found on any of the requested ThreatList an empty response will be returned.
+
+Args:
+  threatTypes: string, Required. The ThreatLists to search in. Multiple ThreatLists may be specified. (repeated)
+    Allowed values
+      THREAT_TYPE_UNSPECIFIED - No entries should match this threat type. This threat type is unused.
+      MALWARE - Malware targeting any platform.
+      SOCIAL_ENGINEERING - Social engineering targeting any platform.
+      UNWANTED_SOFTWARE - Unwanted software targeting any platform.
+  uri: string, Required. The URI to be checked for matches.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    {
+  &quot;threat&quot;: { # Contains threat information on a matching uri. # The threat list matches. This may be empty if the URI is on no list.
+    &quot;expireTime&quot;: &quot;A String&quot;, # The cache lifetime for the returned match. Clients must not cache this response past this timestamp to avoid false positives.
+    &quot;threatTypes&quot;: [ # The ThreatList this threat belongs to.
+      &quot;A String&quot;,
+    ],
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/workflows_v1beta.projects.locations.html b/docs/dyn/workflows_v1beta.projects.locations.html
index bc0b10b..f6f1c4c 100644
--- a/docs/dyn/workflows_v1beta.projects.locations.html
+++ b/docs/dyn/workflows_v1beta.projects.locations.html
@@ -136,7 +136,7 @@
 Args:
   name: string, The resource that owns the locations collection, if applicable. (required)
   filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
-  pageSize: integer, The maximum number of results to return. If not set, the service will select a default.
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
   pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/youtube_v3.liveBroadcasts.html b/docs/dyn/youtube_v3.liveBroadcasts.html
index 777c0d0..6af5a85 100644
--- a/docs/dyn/youtube_v3.liveBroadcasts.html
+++ b/docs/dyn/youtube_v3.liveBroadcasts.html
@@ -152,8 +152,8 @@
     &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
     &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
     &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
     &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
@@ -261,8 +261,8 @@
     &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
     &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
     &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
     &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
@@ -350,8 +350,8 @@
     &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
     &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
     &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
     &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
@@ -467,8 +467,8 @@
         &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
         &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
         &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-        &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-        &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+        &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+        &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
         &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
           &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
             &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
@@ -596,8 +596,8 @@
     &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
     &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
     &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
     &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
@@ -685,8 +685,8 @@
     &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
     &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
     &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
     &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
@@ -774,8 +774,8 @@
     &quot;isDefaultBroadcast&quot;: True or False, # Indicates whether this broadcast is the default broadcast. Internal only.
     &quot;liveChatId&quot;: &quot;A String&quot;, # The id of the live chat for this broadcast.
     &quot;publishedAt&quot;: &quot;A String&quot;, # The date and time that the broadcast was added to YouTube&#x27;s live broadcast schedule.
-    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
-    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledEndTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to end.
+    &quot;scheduledStartTime&quot;: &quot;A String&quot;, # The date and time that the broadcast is scheduled to start.
     &quot;thumbnails&quot;: { # Internal representation of thumbnails for a YouTube resource. # A map of thumbnail images associated with the broadcast. For each nested object in this object, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.
       &quot;default&quot;: { # A thumbnail is an image representing a YouTube resource. # The default image for this resource.
         &quot;height&quot;: 42, # (Optional) Height of the thumbnail image.
diff --git a/docs/dyn/youtube_v3.search.html b/docs/dyn/youtube_v3.search.html
index 6fb83c2..a34970a 100644
--- a/docs/dyn/youtube_v3.search.html
+++ b/docs/dyn/youtube_v3.search.html
@@ -152,7 +152,7 @@
       high - Only retrieve HD videos.
   videoDimension: string, Filter on 3d videos.
     Allowed values
-      any - 
+      any - Include both 3D and non-3D videos in returned results. This is the default value.
       2d - Restrict search results to exclude 3D videos.
       3d - Restrict search results to only include 3D videos.
   videoDuration: string, Filter on the duration of the videos.